Monolith or Microservices or Both
How to write distributed applications has been a long-standing and highly contentious topic. Proponents of microservices argue that breaking down an application into microservices brings benefits such as improved scalability, independent deployment, and easier maintenance. On the other hand, supporters of monolithic architecture argue that a single, cohesive system promotes simplicity, easier development, and reduced operational overhead. This heated debate reflects the diverse needs and perspectives of different teams as they strive to find the most suitable architectural approach for their specific projects.
We have written a vision paper that will appear at HotOS'2023, in which we describe our vision on how to write distributed applications. We argue that developers should write their application as a modular binary and decide later whether they really need to move to a microservices-based architecture. By postponing the decision of how exactly to split into different microservices, it allows them to write fewer and better microservices. We believe that this approach eases the tension between the two different architectures, allowing developers to achieve the best of both worlds.
Looking forward to an interesting discussion at HotOS'23 about microservices versus monolithic architectures.