Topics

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   ·  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

All content

All articles

13 Nov 2024 » ISAQB 2024 - Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
09 Nov 2024 » Loose design-time coupling: part of the wiring of a winning organization
04 Nov 2024 » Microservices rules #10: Make smaller, safer, and reversible changes - part 4
03 Nov 2024 » Reducing insider trading in a microservice architecture
27 Oct 2024 » The evolution of the Microservice Architecture pattern language
21 Oct 2024 » Microservices: the symphony
06 Oct 2024 » Microservices rules #10: Make smaller, safer, and reversible changes - part 3
11 Sep 2024 » Microservices rules #10: Make smaller, safer, and reversible changes - part 2
09 Sep 2024 » Architectural patterns for modular monoliths that enable fast flow
06 Sep 2024 » New premium post: Building a business case for reducing technical debt
01 Sep 2024 » Microservices rules #10: Make smaller, safer, and reversible changes - part 1
27 Aug 2024 » Architecting microservices for fast, sustainable flow
22 Aug 2024 » Evolving an architecture: a problem solving-driven approach
21 Aug 2024 » Architecting monoliths for fast, sustainable flow
10 Aug 2024 » Work smarter, not longer: Embrace fast flow
08 Aug 2024 » The pattern format: an antidote to hype
06 Aug 2024 » Eliminating tedium with OpenRewrite
04 Aug 2024 » New article - Microservices rules #5: Deliberative design
04 Aug 2024 » Upcoming public architecture workshops
21 Jul 2024 » GenAI application development - a Cynefin perspective
18 Jul 2024 » Public architecting for fast, sustainable flow workshops in September 2024
17 Jul 2024 » Premium post: making sure that buying is really better than building
10 Jul 2024 » Microservices rules: what good looks like - July 2024 edition
08 Jul 2024 » Upcoming architecture workshops and talks in Europe in November 2024
07 Jul 2024 » Keynote: Enabling DevOps and Team Topologies thru architecture: architecting for fast flow
27 Jun 2024 » STOP hurting yourself by doing big bang modernizations!
25 Jun 2024 » Did you refactor a monolith to microservice? How did it go?
24 Jun 2024 » I'm now a Team Topologies Advocate! 🎉
18 Jun 2024 » Premium post: There's more to a microservice architecture than services
13 Jun 2024 » PLoP: the gathering of the patterns community
03 Jun 2024 » A better way to think about developer productivity metrics
30 May 2024 » How do you structure your traditional (non-modular) monolith applications?
15 May 2024 » Implementing Faramir with Spring AI
13 May 2024 » How modular can your monolith go? Part 7 - no such thing as a modular monolith?
09 May 2024 » New premium post: Doing more with less, part 3 - Buy don't build using Wardley Mapping
06 May 2024 » Using GenAI (Github Copilot) to build a GenAI service
29 Apr 2024 » Dissecting 'architecting for fast, sustainable flow'
16 Apr 2024 » New premium post: Doing more with less, part 2 - Buy don't build using DDD
14 Apr 2024 » Architecture is multi-dimensional
10 Apr 2024 » The success triangle reinterpreted: it's all about fast flow
01 Apr 2024 » New premium post: Doing more with less, part 1: Improving the developer experience
01 Apr 2024 » Announcing Faramir: an LLM-powered microservice for validating phone numbers
29 Mar 2024 » Services + End-to-End Testing = ?
28 Mar 2024 » The evolution of the success triangle: microservices as the enabler of DevOps and team topologies
26 Mar 2024 » Adding the password grant type to Spring Authorization Server
23 Mar 2024 » ExploreDDD 2024 - Panel: The Crucial Intersection of DDD With LLMs
20 Mar 2024 » A tour of two sagas
18 Mar 2024 » ExploreDDD 2024 - DDD, necessary but insufficient: physical design principles for microservices
27 Feb 2024 » New premium post: Microservices rules #2: Fast deployment pipeline
12 Feb 2024 » Deploying microservices: the path from laptop to production
23 Jan 2024 » Microservices rules: what good looks like
16 Jan 2024 » Clarifying architecture with Service Blueprints: system operations + entities
08 Jan 2024 » New premium post: Prevent descent into unmaintainable hell by tracking and improving the DevEx metrics
21 Dec 2023 » Thoughts about team size
07 Dec 2023 » Clarifying architecture with Service Blueprints: system operations
03 Dec 2023 » Microservices: what does good look like?
03 Dec 2023 » New premium post: Prevent descent into unmaintainable hell by tracking and improving the DORA metrics
13 Nov 2023 » How modular can your monolith go? Part 6 - transaction management for commands
07 Nov 2023 » Service blueprints: creating a shared understanding of your architecture
30 Oct 2023 » How modular can your monolith go? Part 5 - decoupling domains with the Observer pattern
17 Oct 2023 » Assemblage overview: step 3 - defining a service architecture
16 Oct 2023 » New premium article: a service exists to solve problems
09 Oct 2023 » LLMs: our future overlords are hungry and thirsty
21 Sep 2023 » New premium article: thoughts about service granularity
19 Sep 2023 » Assemblage overview: Part 3 - What's a service architecture?
12 Sep 2023 » How modular can your monolith go? Part 4 - physical design principles for faster builds
28 Aug 2023 » How modular can your monolith go? Part 3 - encapsulating a subdomain behind a facade
20 Aug 2023 » How modular can your monolith go? Part 2 - a first look at how subdomains collaborate
14 Aug 2023 » Assemblage overview: Part 2 - Defining subdomains
06 Aug 2023 » Ancient lore: Lehman's laws of software evolution
31 Jul 2023 » How modular can your monolith go? Part 1 - the basics
29 Jul 2023 » Four service collaboration patterns: implementing distributed operations
27 Jul 2023 » Assemblage overview: Part 1 - Defining system operations
25 Jul 2023 » Is organizational unpreparedness a dark matter force?
06 Jul 2023 » The microservice architecture is meant to simplify and accelerate development, but only when done correctly
21 Jun 2023 » The Strangler Fig application pattern: incremental modernization to microservices
22 May 2023 » Beer and tacos and the metaphorical origins of Docker containers
17 May 2023 » Evolving a microservice architecture: how to right-size your services
02 May 2023 » New premium article - Big decisions: should you migrate your monolith to microservices? Part 2.
26 Apr 2023 » DDD, necessary but insufficient: physical design principles for microservices
16 Apr 2023 » Local vs. cloud-based development
13 Apr 2023 » Big decisions: should you migrate to microservices? Part 1
13 Apr 2023 » Announcing Microservices.io Premium
10 Apr 2023 » Exploring transactional messaging in Oracle 23c Free - developer release
28 Mar 2023 » Essential characteristics of the microservice architecture: loosely coupled
26 Mar 2023 » About dark energy and dark matter: forces that shape an architecture
16 Mar 2023 » Monolith to Microservices with Bite-Sized Kubernetes
13 Mar 2023 » #becauseItDepends Finding your inner Vulcan: unemotional decision making with pattern-style thinking
01 Mar 2023 » The geometry of microservices - cubes, hexagons, triangles, and more
09 Feb 2023 » Introducing Assemblage - a microservice architecture definition process
07 Feb 2023 » Evolving a microservice architecture using dark energy and dark matter forces
03 Feb 2023 » Understanding an architecture: part 2 - user stories and scenarios
18 Jan 2023 » OMG are you still using Rational Rose?
16 Jan 2023 » Understanding an architecture: part 1 - system context
11 Jan 2023 » CxOs neglect architecture at their peril
09 Jan 2023 » Scripting with JBang instead of Python
07 Jan 2023 » Latest updates to microservices.iotitle: Latest updates to microservices.io: new content and taggingcolon; new content and tagging
05 Jan 2023 » Updated microservice architecture presentations
29 Nov 2022 » Considering Migrating a Monolith to Microservices? A Dark Energy, Dark Matter Perspective
26 Oct 2022 » QCONSF 2022: Dark Energy, Dark Matter and the Microservices Patterns?!
11 Jul 2022 » August 29th: public designing a microservice architecture workshop in APAC (GMT+9) timezone
04 May 2022 » Essential characteristics of the microservice architecture: independently deployable
02 May 2022 » Dark energy, dark matter and microservice architecture collaboration patterns
01 May 2022 » My new Windows 365 Cloud PC: Windows 11, Docker Desktop and WSL2
23 Apr 2022 » 10 years of 'microservices'
12 Apr 2022 » Interview about microservices with Koushik Kothagal (@Java_Brains)
12 Apr 2022 » June 7th public microservice architecture workshop in APAC (GMT+9) timezone
06 Apr 2022 » Using scenarios to reinvigorate your microservice architecture
16 Mar 2022 » Icebergs, the Interface Segregation Principle and microservices
15 Mar 2022 » My new Manning LiveProject: developing a service template and microservice chassis
02 Mar 2022 » The Eventuate Tram Customers and Orders example now runs on Arm/M1 MacBook!!
25 Feb 2022 » Publishing a multi-architecture Docker image for the Eventuate CDC service
23 Feb 2022 » Publishing multi-architecture base images for services
21 Feb 2022 » Conversations about Software Engineering podcast: Service Templates and Service Chassis
18 Feb 2022 » The developer's essential knowledge pyramid
14 Feb 2022 » Building a multi-architecture Docker image for Apache Kafka
13 Feb 2022 » Finding that special plus one for your architecture
11 Feb 2022 » Configuring CircleCI to build, test and publish multi-architecture images for Eventuate Common
31 Jan 2022 » Configuring a CircleCI pipeline that builds a multi-architecture Docker image that runs on an Arm-based Apple M1 MacBook
28 Jan 2022 » Developing the Eventuate Common library on an M1/Arm MacBook
26 Jan 2022 » Using patterns and pattern languages to make better architectural decisions
23 Jan 2022 » If the Service template and Microservice chassis are the solution, what is the problem?
20 Jan 2022 » Configuring CircleCI to publish a multi-architecture Docker image
19 Jan 2022 » Writing better problem reports: 6 essential details
19 Jan 2022 » Testing an Intel and Arm multi-architecture Docker image on CircleCI
18 Jan 2022 » Configuring a CircleCI-based pipeline to build multi-architecture Docker images
16 Jan 2022 » Building multi-architecture Docker images for Intel and ARM
10 Jan 2022 » My Apple M1 MacBook: lots of cores, memory and crashing containers
04 Jan 2022 » Writing better problem reports: 6 essential details
30 Nov 2021 » Designing an architecture using dark matter and dark energy
31 Oct 2021 » iSAQB keynote - Modular monoliths and microservices: architectural patterns for rapid, reliable, frequent and sustainable development
15 Sep 2021 » Techlead Journal Podcast - Principles for Adopting Microservices Successfully
10 Aug 2021 » Revised patterns - Microservice Chassis and Service Template
28 Jul 2021 » Events to the rescue: solving distributed data problems in a microservice architecture
27 Jul 2021 » A pattern language for microservices
27 Jul 2021 » The Confident Commit podcast| Episode 6: Architecture meets delivery
02 Jun 2021 » Andorian development principles and practices
21 May 2021 » QConPlus 2021: Takeout burritos and minimizing design-time coupling in a microservice architecture
15 Apr 2021 » Mucon 2021 - Dark energy, dark matter: imperfect metaphors for designing microservices
21 Feb 2021 » Events on the outside, on the inside and at the core
14 Feb 2021 » When to use the microservice architecture: part 5 - the monolithic architecture and rapid, frequent, reliable and sustainable software delivery
30 Jan 2021 » End of January discounts for my Microservices book and bootcamp
04 Jan 2021 » The Microservices Assessment Platform is generally available
04 Jan 2021 » Designing loosely coupled services
15 Dec 2020 » GraalVM as pattern - work in progress
14 Dec 2020 » Designing loosely coupled services
24 Nov 2020 » Microservices - an architecture that enables DevOps
16 Nov 2020 » Working in a high-performance organization
18 Oct 2020 » Microservices and monoliths are both mistakes - picking the appropriate architecture for your application is still a best practice
16 Oct 2020 » Handling duplicate messages using the Idempotent consumer pattern
29 Sep 2020 » 497K views and countingtitle: 497K views and counting: My DockerCon 2016 talk - Microservices + Events + Docker = A Perfect Trio#58; My DockerCon 2016 talk - Microservices + Events + Docker = A Perfect Trio
22 Sep 2020 » The microservice architecture: enabling rapid, reliable, frequent and sustainable development
21 Aug 2020 » Decompose your monolith: Ten principles for refactoring a monolith to microservices
28 Jul 2020 » Decompose your monolith: Six principles for refactoring a monolith to microservices
30 Jun 2020 » Enrollment is now open for the distributed data patterns for microservices virtual bootcamp
02 Jun 2020 » Enrollment is now open for the beta of distributed data patterns for microservices virtual bootcamp
21 May 2020 » Why microservices - part 4: the last third of the success triangle: architectural requirements for rapid, frequent, reliable and sustainable development
14 May 2020 » A pattern language and visual notation for messaging systems: Enterprise integration patterns by @ghohpe and @bobby_woolf
04 May 2020 » Announcing the first virtual bootcamp - distributed data patterns in a microservice architecture
03 May 2020 » IT in the time of COVID-19 - the tale of three fictitious grocery stores
29 Apr 2020 » Announcing the first virtual bootcamp: distributed data patterns in a microservice architecture
11 Apr 2020 » Why microservices - part 3: two thirds of the success triangle - process and organization
30 Mar 2020 » Why microservices: part 2 - the need for sustainable development
19 Mar 2020 » The Japanese edition of Microservices Patterns
12 Mar 2020 » Online microservices workshops, virtual bootcamps and remote consulting
21 Feb 2020 » Slides for my #devnexus talk - Decompose your monolith
18 Feb 2020 » When to use the microservice architecture: part 1 - the need to deliver software rapidly, frequently, and reliably
04 Feb 2020 » Jfokus: Cubes, Hexagons, Triangles, and More: Understanding Microservices
02 Feb 2020 » Just a reminder: picking the appropriate architecture for your application is a best practice.
30 Jan 2020 » New microservices assessment feature - links to patterns
30 Jan 2020 » A glossary of microservice architecture terms
07 Jan 2020 » Books about high-performance software delivery: DevOps Handbook + Team Topologies + Accelerate + Microservices Patterns
12 Dec 2019 » Managing data consistency in a microservice architecture using Sagas - Implementing an orchestration-based saga
02 Dec 2019 » New saga article - implementing orchestration-based sagas
02 Dec 2019 » Microservices workshop at Jfokus, Stockholm
14 Nov 2019 » New microservices pattern - Self-contained service
12 Nov 2019 » New video: Cubes, Hexagons, Triangles, and More: Understanding the Microservice Architecture Through Shapes
10 Nov 2019 » Microservices Patterns - Now available in Russian and on Audible
09 Oct 2019 » Decompose Your Monolith: Strategies for Migrating to Microservices
02 Oct 2019 » GOTO Chicago presentation: Not Just Events - Developing Asynchronous Microservices
20 Sep 2019 » Slides for my YOW! Perth and Singapore - Cubes, Hexagons, Triangles, and More - Understanding the Microservice Architecture Through Shapes
20 Sep 2019 » Slides for my Oracle CodeOne 2019 talk - Descending the Testing Pyramid - Effective Testing Strategies for Microservices
20 Sep 2019 » Slides for my Oracle CodeOne 2019 talk - Decompose Your Monolith - Strategies for Migrating to Microservices
15 Aug 2019 » Managing data consistency in a microservice architecture using Sagas - Implementing a choreography-based saga
04 Aug 2019 » Managing data consistency in a microservice architecture using Sagas part 2 - coordinating sagas
23 Jul 2019 » Do your architects actually work on architecture?
16 Jul 2019 » A great trilogy by Mark Schwartz (@schwartz_cio) - War and Peace and IT, A Seat at the Table, and The Art of Business Value
15 Jul 2019 » The FTGO application and the Database per service pattern
09 Jul 2019 » The YOW conferences in Perth, Hong Kong, and Singapore
09 Jul 2019 » MicroCPH - Managing data consistency in a microservice architecture using Sagas
09 Jul 2019 » Managing data consistency in a microservice architecture using Sagas - part 1
29 Jun 2019 » The Microservices assessment platform now supports organizations
22 Jun 2019 » Containers, the developer workflow and the test pyramid
18 Jun 2019 » Microservices adoption antipatterns
07 Jun 2019 » Microservices adoption anti-pattern: Red flag law
27 May 2019 » The Chinese translation of Microservices Patterns
21 May 2019 » Microservices adoption anti-pattern: More the merrier
12 May 2019 » Self-documenting services: generating a microservice canvas
30 Apr 2019 » Microservices adoption anti-pattern: Focussing on technology
28 Apr 2019 » New #GotoChgo, #microcph conference talks on asynchronous microservices - implementing Sagas and CQRS
28 Apr 2019 » Two more anti-patterns of microservices adoption
16 Apr 2019 » Books you should read - Why we sleep
09 Apr 2019 » Microservices adoption anti-pattern: Trying to fly before you can walk
24 Mar 2019 » Public microservices training in the Netherlands, May 15th and 16th
27 Feb 2019 » Documenting a service using the microservice canvas
25 Feb 2019 » Microservices adoption anti-pattern: scattershot adoption
16 Feb 2019 » What's a service - part 1?
16 Feb 2019 » Microservices workshops in Chicago and Stockholm
29 Jan 2019 » Public microservices training in Stockholm, May 8th and 9th
29 Jan 2019 » More on microservices anti-patterns
28 Jan 2019 » Microservices anti-patterns in Melbourne
14 Jan 2019 » Anti-pattern: microservices as the goal
12 Jan 2019 » My YOW! 2018 presentation: Events and Commands: Developing Asynchronous Microservices
10 Jan 2019 » Upcoming workshops at O'Reilly Software Architecture New York and GOTO Chicago
07 Jan 2019 » Microservices adoption anti-patterns: microservices are a magic pixie dust
31 Dec 2018 » The Microservice Architecture Assessment is now available
08 Nov 2018 » Mucon - Not Just Events, Developing Asynchronous Microservices
07 Nov 2018 » Microservices at the @thekonginc Summit in September
04 Nov 2018 » Potholes in the road from monolithic hell - Microservices adoption anti-patterns
18 Oct 2018 » Oracle Code One - Events and commands, developing asynchronous microservices
18 Oct 2018 » New and revised microservices classes
15 Oct 2018 » Microservices at Silicon Valley Code Camp
22 Mar 2018 » microXchg 2018 - Managing data consistency in a microservice architecture using Sagas
20 Feb 2018 » CodeFreeze 2018 - There is no such thing as a microservice!
04 Dec 2017 » QCONSF 2017 presentation - ACID Is So Yesterday, Maintaining Data Consistency with Sagas
04 Dec 2017 » Upcoming public training - Microservices at UMN, Minneapolis in January
01 Aug 2017 » Presentation - Solving distributed data management problems in a microservice architecture
24 Jul 2017 » Revised data patterns
26 Mar 2017 » There is no such thing as a microservice!
24 Feb 2017 » New book - Microservice patterns
12 Feb 2017 » How to apply the pattern language
06 Jun 2016 » Fantastic presentation by Eric Evans on DDD and microservices
23 Feb 2016 » One day microservices class in Oakland, CA
21 Feb 2016 » Microservice chassis pattern
28 Jul 2015 » What's new with #microservices - July 28, 2015: integration platforms, new article on microservices and IPC
23 Jun 2015 » What's new with #microservices - June 23, 2015: @crichardson and microservices training
06 Jun 2015 » What's new with #microservices - June 6, 2015: @martinfowler, @crichardson, @adrianco
15 Mar 2015 » Microservice deployment patterns
01 Mar 2015 » Service discovery patterns
15 Jan 2015 » Event Sourcing + CQRS example microservices
02 Nov 2014 » Webinars on Spring Boot, Cloud Foundry, and Microservices
08 Sep 2014 » API gateway pattern added
12 May 2014 » What's new with #microservices - May 12th 2014
07 Apr 2014 » This week in #microservices - April 7th 2014
31 Mar 2014 » This week in #microservices - March 31st 2014
18 Mar 2014 » Welcome to Microservices!

About Microservices.io

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.

Upcoming public workshops: Microservices and architecting for fast flow

In-person: Berlin and Milan

DevOps and Team topologies are vital for delivering the fast flow of changes that modern businesses need.

But they are insufficient. You also need an application architecture that supports fast, sustainable flow.

Learn more and register for one of my upcoming public workshops in November.

NEED HELP?

I help organizations improve agility and competitiveness through better software architecture.

Learn more about my consulting engagements, and training workshops.

LEARN about microservices

Chris offers numerous other resources for learning the microservice architecture.

Get the book: Microservices Patterns

Read Chris Richardson's book:

Example microservices applications

Want to see an example? Check out Chris Richardson's example applications. See code

Virtual bootcamp: Distributed data patterns in a microservice architecture

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 CCMHVSFB to sign up for $95 (valid until November 8th, 2024). There are deeper discounts for buying multiple seats.

Learn more

Learn how to create a service template and microservice chassis

Take a look at my Manning LiveProject that teaches you how to develop a service template and microservice chassis.

Signup for the newsletter


BUILD microservices

Ready to start using the microservice architecture?

Consulting services

Engage Chris to create a microservices adoption roadmap and help you define your microservice architecture,


The Eventuate platform

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