Most small products start as one application, and most stay that way for longer than their authors expected. The interesting question is where people draw lines inside it.
Reply with:
- Your shape today: one app, one app with clear modules, or several services
- Team size
- What you split out first, if anything, and what forced it
- What you would not split again
Reasons that tend to justify pulling something out of the main application:
- It needs to scale very differently from the rest (a queue worker, image processing).
- It has to run on a different schedule or in a different place.
- A separate team owns it.
- A failure there must not take the product down.
Reasons that tend not to justify it: it feels cleaner, a large company does it, or the codebase is messy. Mess inside one application becomes mess across a network, which is harder to debug.
There is already a thread on the forum about when a modular monolith stops being enough. Add your own numbers here.