&gt; Large Erlang applications have a flat “bus like” structure. They are structured as independent parallel applications hanging off a common communication bus. This leads to architectures that are easy to understand and debug and collaborations which are easy to program.<p>How is it easier to debug a message-passing architecture than a monolith?  Observe the JS world is slowly moving away from using Pub&#x2F;Sub for connecting components together.  Each individual piece is easy to understand, but the chain of causality is very hard to determine with all those messages flying around.