Chapter 1. Essential Traits of an Individual Microservice
In my previous book, Reactive Microservices Architecture, I discussed the essential traits of a microservice: isolation, autonomicity, single responsibility, exclusive state, and mobility. Let’s take a few minutes to recap the essence of these traits.
Isolate All the Things
Without great solitude, no serious work is possible.
Pablo Picasso
Isolation is the most important trait and the foundation for many of the high-level benefits in microservices.
Isolation also has the biggest impact on your design and architecture. It will, and should, slice up the entire architecture, and therefore it needs to be considered from day one.
It will even affect the way you break up and organize the teams and their responsibilities, as Melvyn Conway discovered in 1967 (later named Conway’s Law):
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
Isolation between services makes it natural to adopt Continuous Delivery (CD). This makes it possible for you to safely deploy applications and roll out and revert changes incrementally, service by service.
Isolation makes it easier to scale each service, as well as allowing them to be monitored, debugged, and tested independently—something that is very difficult if the services are all tangled up in the big bulky mess of a monolith.
Act Autonomously
In a network of autonomous systems, an agent ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access