Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of two or more services that are:
Services are typically organized around business capabilities. Each service is often owned by a single, small team.
For a business to thrive in today’s volatile, uncertain, complex and ambiguous world, IT must deliver that software rapidly, frequently and reliably.
To do that for large complex applications you need the success triangle.
The key challenge when using microservices is designing a good service architecture.
If you get it wrong you risk creating a distributed monolith, which will slow down software delivery.
Assemblage is an architecture definition process for grouping subdomains/bounded contexts into services.
Assemblage uses the dark energy and dark matter forces to shape the service architecture.
Dark energy forces encourage decomposition into smaller services. Dark matter forces resist decomposition.
The balance between these forces shapes the service architecture.
The microservices pattern language is your guide when designing an architecture: service collaboration, testing, deployment, common crosscutting concerns and more. It’s a collection of patterns that help you make decisions when designing and evolving an architecture.
The monolithic architecture is not an anti-pattern. It’s a good choice for small teams and small projects.
But if you outgrow your monolithic architecture, you need to refactor it to services using the Strangler Fig pattern.
Note: tagging is work-in-process
Cynefin · DDD · GitOps · Microservices adoption · ancient lore · anti-patterns · api gateway · application api · application architecture · architecting · architecture · architecture documentation · assemblage · automation · beer · books · build vs buy · containers · culture · dark energy and dark matter · decision making · deployment · deployment pipeline · design-time coupling · developer experience · development · devops · docker · eventuate platform · fast flow · generative AI · glossary · health · hexagonal architecture · implementing commands · implementing queries · inter-service communication · kubernetes · loose coupling · microservice architecture · microservice chassis · microservices adoption · microservices rules · microservicesio updates · modular monolith · multi-architecture docker images · observability · pattern · pattern language · refactoring · refactoring to microservices · resilience · sagas · security · service api · service architecture · service blueprint · service collaboration · service design · service discovery · service granularity · service template · software delivery metrics · success triangle · survey · tacos · team topologies · technical debt · testing · transaction management · transactional messaging · wardley mapping
Microservices.io is brought to you by Chris Richardson. Experienced software architect, author of POJOs in Action, the creator of the original CloudFoundry.com, and the author of Microservices patterns.
Got a question about microservices?
Fill in this form. If I can, I'll write a blog post that answers your question.
I help organizations improve agility and competitiveness through better software architecture.
Learn more about my consulting engagements, and training workshops.
Chris offers numerous other resources for learning the microservice architecture.
Want to see an example? Check out Chris Richardson's example applications. See code
My virtual bootcamp, distributed data patterns in a microservice architecture, is now open for enrollment!
It covers the key distributed data management patterns including Saga, API Composition, and CQRS.
It consists of video lectures, code labs, and a weekly ask-me-anything video conference repeated in multiple timezones.
The regular price is $395/person but use coupon NPXJKULI to sign up for $95 (valid until December 25th, 2024). There are deeper discounts for buying multiple seats.
Take a look at my Manning LiveProject that teaches you how to develop a service template and microservice chassis.
Engage Chris to create a microservices adoption roadmap and help you define your microservice architecture,
Use the Eventuate.io platform to tackle distributed data management challenges in your microservices architecture.
Eventuate is Chris's latest startup. It makes it easy to use the Saga pattern to manage transactions and the CQRS pattern to implement queries.
Join the microservices google group