- Hands-On Microservices with Kubernetes
- Gigi Sayfan
- 234字
- 2021-06-24 13:46:38
Understanding Conway's law
Conway's law is defined as follows:
This means the structure of the system will reflect the structure of the team building it. A famous variation by Eric Raymond is this:
This is very insightful and I've personally witnessed it time and again in many different organizations. This is very relevant to microservice-based systems. With lots of small microservices, you don't need a dedicated team for each microservice. There will be some higher-level groups of microservices that work together to produce some aspect of the system. Now, the question is how to think about the high-level structure. There are three main options:
- Vertical
- Horizontal
- Matrix
Microservices can be very important in this regard. By being small autonomous components, they support all structures. But, what is even more important is when organizations need to transition from one approach to another. The usual trajectory is: horizontal | vertical | matrix.
The organization can perform those transitions with much less friction if the software follows a microservice-based architecture. It can even be a deciding factor. Even an organization that doesn't follow microservice-based architecture decides to stay with an inappropriate structure because the risk and effort of breaking the monolith is too high.