Saturday, July 27, 2024

Transitioning to a Microservices Architecture - Part 2

Microservices and the Development Organization

Microservice architecture is based on the principles of modular systems that comply with the domain-driven design paradigm.  That is, the architecture is broken into sub-domains with delegated specialized responsibilities that are delineated from other modules by what is called a boundary context.  Therefore, in order to have specialized knowledge that is best able to address the concerns of these sub-domains, it is best to have a development organization that has teams of experts in the particular sub-domain. The team becomes the owner of microservices in that sub-domain.  This type of development organization is key to implementing a microservices architecture.

As stated in Conway's Law:

"O]rganizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations."

The implications of Conway's Law are fundamental to the successful implementation of microservices architecture.  Because a microservice is a module with a responsibility within a domain therefore with a clear boundary context, having teams that become delegated to work on that specific sub-domains will tend to facilitate the implementation of microservices.

Again, what I am trying to say is that in order to achieve the best results from a Microservice Architecture it is imperative that an organization is broken down into sub-domain knowledge expertise.  The Microservice Architecture goes hand in hand with Conway's Law.  That is, by breaking organizations into sub-domains, you force those organizations to create applications that more uniquely resemble the microservices of those sub-domains.  The communication within those expertise groups becomes very cohesive, unique, and very focused on the intents/requirements of those sub-domains.  This will help create a Microservice architecture. 

In fact, one way to force an organization to move to a Microservice Architecture is to use the reverse (or also known inverse) Conway's Law pattern, which basically states that by breaking an organization into groups of sub-domain experts you end up creating a Microservice Architecture.

Rubens Gomes


No comments: