Developing in erlang&#x2F;elixir gives you a varient of this, in that your code is broken up into many small &quot;processes&quot; which are messaging each other even when you&#x27;re only deploying a single app to a single server. Then if you need to distribute and scale, introducing networks between  the components is relatively small change (sun&#x27;s fallacies of distributed computing meaning it&#x27;s never a 0 cost change however)