The hybrid approach keeps most functionality in a monolith while surrounding it with microservices for jobs that need greater performance, scalability, flexibility, or fault tolerance. It offers monolithic simplicity for the main codebase without rejecting targeted service extraction. section 12.7.3 section 12.11
Use the architecture to make pragmatic boundaries around specialized work:
- Keep most application code in the monolith when simplicity and ease of maintenance matter most. section 12.7.3
- Move individual features to microservices when their performance, scalability, flexibility, or fault-tolerance requirements justify the added complexity. section 12.7.3
- Refactor through small, well-tested steps rather than attempting an immediate migration to a complete microservices architecture. section 12.11
- Protect each accessible gateway with authentication and authorization as services are added. section 12.11
Video application
A video application can keep its main functionality in the monolith while delegating thumbnail computation and machine-learning-based video subject detection to microservices. These jobs remain separate because they are particularly sensitive to performance and scalability requirements. section 12.7.3
Figure 12.29 The hybrid approach: a monolith surrounded by a “constellation” of helper microservices
A diagram of the monolith at the center, surrounded by a constellation of helper microservices, reinforces the architecture’s boundary and division of responsibilities. section 12.7.3




