To succeed with microservices, it’s important to be good at scoping each microservice appropriately. If your microservices are too big, the turnaround on creating new features and implementing bug fixes becomes longer than it needs to. If they’re too small, the coupling between microservices tends to grow. If they’re the right size but have the wrong boundaries, coupling also tends to grow, and higher coupling also leads to longer turnaround. In other words, if you aren’t able to scope your microservices correctly, you’ll lose much of the benefit microservices offer. In this chapter, I’ll teach you how to find a good scope for each microservice so it stays loosely coupled and efficient to work with.
The primary driver in identifying and scoping microservices is business capabilities, the secondary driver is supporting technical capabilities, and the tertiary driver is efficiency of work. Following these drivers leads to microservices that align nicely with the list of microservice characteristics from chapter 1: