Principles of microservices
There are a lot of definitions of microservices that are available on the web. One that comes up frequently is the following:
"Microservices are small and autonomous services that work well together."
Let's start looking at this definition and what it means in a little more detail.
Size
The fact that the word microservices contains the word micro leads us to think that the service's size must be really small. However, it's almost impossible to define what the right size of the services should be using metrics such as how many lines of code or files there are, or the size of a particular deployable artifact. Instead, it's much simpler to use the following idea:
"A service should be focused on doing one thing well."
- Sam Newman
That one thing can be thought of as one business domain. If you're building systems for an online store, for example, they might cover the following business domains:
- Customer management
- Product catalog
- Shopping cart
- Orders
The idea is to build one...