(a.k.a. Common Problems with Monoliths)
- language limitations
- modular scalability
- modularity leaks
- large, loosely-defined teams
What is a microservice?
1 monolith 2+ monoliths
Each monolith can be run and scaled independently, with no shared state
Does micro mean it has to be small?
We're edging around a semantic argument, but micro typically means concerned with only one thing.
...which may be a huge thing, like payroll. But more typically, they're smaller, like Netflix's streaming API or Amazon's reviews API.
- smaller parts, easier to understand
- specialized languages
- optimized scaling
- strictly defined modules
- small, specialized teams
- (!) combinatorial complexity
- (!) inflexible module boundaries
- more complex infrastructure and deployment
- cross-team communication very important
By Chris Fritz