Skip to content

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.

Project evidence