It is Right to Start with a Monolith | Microservice Architecture — Ep. 9
Microservices have many benefits — but they are not a default choice for greenfield projects.
Monoliths have strong advantages that service-oriented approaches cannot offer:
- the whole app is deployed as a single unit: if it compiles, cross-module integration is likely correct
- development and refactoring are simpler: the compiler helps to track if changes are complete
- cross-module calls are synchronous or close to synchronous, taking less than 1-10 milliseconds
- testing is easier, with clear targets of integration and e2e tests
- debugging is simpler: spin up the app locally, set breakpoints, attach a profiler — and you have the whole system for inspection
When monoliths are OK:
- small projects
- small teams
- unclear domain
- unclear scaling requirements
...basically, in most new projects.