A Multi-Service Stack hosts multiple applications in a single instance of the infrastructure stack.
For example, a search application might involve running several services - a front end UI, an indexing service, a search API service, and a data store.
Also Known As
- Combined stack
- Service group stack
Defining the infrastructure for multiple related services together may make it easier to manage the application as a whole.
This can work well when a single team owns the infrastructure and deployment of all of the pieces of the application, so the boundaries of the stack match the boundaries of the team.
Multi-service stacks are sometimes a useful part of an incremental strategy of splitting a monolithic stack into smaller stacks, with an aim of ending up with single service stacks or even cross-stack services where appropriate. In this case, the multi-service stack is a stepping stone towards a more fully decomposed architecture.
A drawback with this pattern is that the stack can become unwieldy, tending towards a monolith. It can be difficult to make a small change to a single service without risking disruption to other applications running on the stack.