Compare monolithic and service-based architectures and plan incremental extraction or consolidation around domain boundaries, data ownership, and measured goals.
Choose Between a Monolith, Microservices, and a Modular Architecture
Company: Generalmotors
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Technical Screen
Compare a monolithic service, microservices, and a modular architecture. Explain how you would migrate a monolith toward services and how you would reconsider an overly fragmented microservice system in favor of clearer modules.
### Constraints
No team size, workload, deployment constraint, or existing failure is prescribed. A modular architecture may be a modular monolith or well-defined modules within a service-based system; clarify the intended form. Do not assume that more services automatically improve scalability or maintainability.
### Clarifying Questions
- Which current problem motivates the change: deployment coupling, scaling, ownership, reliability, or development speed?
- Where are the domain and data boundaries, and which operations need transactions?
- Can the migration be incremental while old and new components coexist?
```hint Preserve a business invariant through the migration
A new network boundary changes failure and consistency behavior even when the extracted code initially looks identical.
```
### What a Strong Answer Covers
- Concrete tradeoffs in deployment, operational burden, failure isolation, and data consistency.
- A migration sequence based on domain boundaries and measurable goals.
- Reasons to consolidate services or strengthen module boundaries and how to validate the result.
### Follow-up Questions
- How would you avoid a distributed monolith with tightly coupled deployments?
- How would shared database ownership affect the extraction plan?
Overview: Compare monolithic and service-based architectures and plan incremental extraction or consolidation around domain boundaries, data ownership, and measured goals.
Compare a monolithic service, microservices, and a modular architecture. Explain how you would migrate a monolith toward services and how you would reconsider an overly fragmented microservice system in favor of clearer modules.
Constraints
No team size, workload, deployment constraint, or existing failure is prescribed. A modular architecture may be a modular monolith or well-defined modules within a service-based system; clarify the intended form. Do not assume that more services automatically improve scalability or maintainability.
Clarifying Questions Guidance
Which current problem motivates the change: deployment coupling, scaling, ownership, reliability, or development speed?
Where are the domain and data boundaries, and which operations need transactions?
Can the migration be incremental while old and new components coexist?
What a Strong Answer Covers Guidance
Concrete tradeoffs in deployment, operational burden, failure isolation, and data consistency.
A migration sequence based on domain boundaries and measurable goals.
Reasons to consolidate services or strengthen module boundaries and how to validate the result.
Follow-up Questions Guidance
How would you avoid a distributed monolith with tightly coupled deployments?
How would shared database ownership affect the extraction plan?