When is one app with modules enough, and when do you need separate services?
Answer out loud or in your head first, then compare.
Answer
If a small team develops a shared domain, one application with well-separated modules is often simpler to maintain. It's easier to deploy changes and run transactions. Separate services make sense when they genuinely need independent scaling, permissions or ownership.
I don't have to split the whole product into microservices just because it's “enterprise”. I can run the API and a long-running job program separately while sharing some code. Isolating an agent's untrusted code can justify a clearer security boundary. Extra services also mean network errors, API compatibility and harder root-cause analysis.
Why it matters: Tests whether you can deliberately keep an architecture simple.
Possible follow-ups: Which specific problem does extracting a new service solve?
How did it go? Be honest — “Not yet” puts the question on your review list.
Start with
- D-P01 · What is HTTP, and what do a request and a response look like? — Backend, data and system design
- D-P10 · What is a database transaction? — Backend, data and system design
- D-P13 · What is a message queue, and why do we use one? — Backend, data and system design
Further reading
- AWS Prescriptive Guidance: Transactional outbox(opens in a new tab)Docs; accessed 22.10.2026. The dual-write problem and writing an event in the same transaction.