Micro Services - Conway Law and Application Integration teams

Deel dit bericht

"Micro Services" is a new buzzword in world of IT architects. As it talks about application components communicating over a network and contains "services", it probably has something to do with SOA and integration. So I had to look into it.

Let's bulletize the description from the article by Martin Fowler and James Lewis:

The Microservices architectural style is an approach to

developing a single application < application architecture

as a suite of small services, < componentization, no libraries

each (service) running in its own process

and communicating with lightweight mechanisms, over the network

often an HTTP resource API. < REST, message bus

These services are built around business capabilities < Domain Driven Design

and independently deployable by fully automated deployment machinery.

There is a bare minimum of centralized management of these services,

which may be written in different programming languages and

use different data storage technologies < eventual consistency

Microservices are an architecture used by very large, modern IT systems such as LinkedIn, Netflix, Amazon and eBay. There's all sorts of interesting aspects to Micro Services, e.g. the GUI part, security, transactional integrity, versioning etc.

Conway law - Integration Competence CenterBut there was one aspect that triggered me in particular when learning about Microservices: Conway Law: "any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure".

So this law states that an application architecture will reflect the way an IT department is organized. Microservices advocates refer a lot to it.

Service boundaries reinforced by team boundaries (picture from article by Martin Fowler)

For Microservices to focus and align with business functionality, the teams developing (and maintaining) the Microservices should therefore be cross-functional, including the full range of skills required for the development: user-experience, database, and project management.

Orthogonal to the view of the Microservices architects, that Conway Law confirms my personal view and opinion that any IT organization that wishes to leverage a central integration platform to a great extent, requires a separate team developing on and managing that integration platform.