Greenspun’s 10th rule states, “Any sufficiently complicated C or Fortran program contains an ad hoc, informally specified, bug-ridden, slow implementation of half of Common Lisp.” This has morphed into the newer joke: “Every microservice architecture contains a half-broken reimplementation of Erlang.” I think there is a lot of truth to this.

Related comments from the peanut gallery:

The architecture of an idiomatic Erlang-based system is essentially a microservice architecture.

If you have good abstractions for concurrency then distribution and independent scalability should be trivial in a single codebase. Loose coupling is usually a false dream. Microservices tend to get coupled at the network level instead of the code level. Yuck!

The microservices corollary to Greenspun's 10th Rule
Sam Newman, from Monolith to Microservices (2019)