Engineering / Open resources
Modular monolith or separate services?
Choose boundaries based on operations and autonomy, with examples from ImpressãoMais3D.
Start with boundaries
Separate domains, dependencies and contracts within the application. In ImpressãoMais3D, linter-enforced import rules support these boundaries without requiring network distribution.
Extract for a concrete pressure
Consider a service when independent deployment, failure isolation or distinct scaling justify the cost of observability, contracts and distributed consistency. Record which problem extraction solves and how to measure the outcome.
Warning sign
If every change requires deploying all services together, physical separation has not delivered autonomy. Review contracts and data coupling before adding more services.