What is a Microservice?

A microservice is an encapsulation of closely related functional capabilities within a domain set which should be available, secured, persisted, mutated, and maintained autonomously and atomically.

As I see it, microservices are the evolution of service oriented architecture (SOA) and domain driven design (DDD) concepts.

Autonomous

To be autonomous, means that a microservice requires no dependencies outwardly, or inward from outside dependents, to be available, secured, persisted, mutated, and maintained; However, a microservice can and will likely have dependencies and dependents in order to eventually fulfill its functional responsibilities.

Atomic

Perhaps the most overlooked, misunderstood, and important concept of a microservice is the atomic behavior required. When delivering / deploying a change to a microservice, all changes should be deployed successfully and turn on at once, or none at all. This behavior ensures integrity of data, security, and logic as mutation occurs.

Published by Brent VanderMeide

CTO and an enterprise, microservice, cloud architect with over 20 years of experience leading teams with focuses on the following: * Strategic Planning * Technology & Product Roadmaps * Architecture Patterns & Practices * Domain Driven Design (DDD) * Containerization & Orchestration

Leave a comment