Microservices rules: what good looks like - July 2024 edition

microservice architecture   architecting   team topologies   software delivery metrics   microservices rules  

Yesterday, I gave this presentation at a company’s internal meetup. It’s the latest version of my Microservices Rules talk. These 11 rules are a great checklist that engineering leaders can use to assess the state of their organization, its delivery practices and its application’s architecture.

About the rules

As I previously described:

The microservice architecture has become increasingly popular over the past decade. Its key benefits include significantly improving the developer experience and accelerating software delivery. Sadly, however, microservices have often been widely misunderstood and used inappropriately. As a result, many organizations have struggled to benefit from their adoption. I’ve had numerous conversations where developers have complained that their new microservices-based applications are difficult to change.

In this presentation, I describe 11 development and architecture rules (a.k.a. best practices) that should prevent an organization from making a mess of its microservice architecture. I say should because given semantic diffusion and incredible ability of many organizations to misinterpret and misapply rules, there are no guarantees. However, I believe that if an organization follows these rules when adopting microservices, it will increase their chance of success.

The July 2024 version of the rules

Here’s the current list of rules:

  1. Practice continuous delivery/deployment
  2. Implement fast, automated deployment pipelines
  3. Apply Team Topologies: organizing for fast flow (was: Organize into small, cross-functional, loosely coupled teams)
  4. Provide a great developer experience (DevEx)
  5. Use a deliberative design process
  6. Design independently deployable services
  7. Design loosely coupled services
  8. Design testable services
  9. Develop observable services
  10. Big/risky change => smaller/safer and (ideally easily) reversible changes (was: Incrementally migrate from a monolith to microservices)
  11. Track and improve software metrics and KPIs

The motivations for the two changes are as follows:

  • Rule #3 - It’s best to simply use Team Topologies as the guide for organizing teams for fast flow.
  • Rule #10 - I generalized this rule since there’s a tendency for organizations to make big, risky changes in all kinds of situations, not just when migrating from a monolith to microservices. An organization might, for example, spend months reimplementing a subsystem and then spend a stress filled weekend migrating all users to that new subsystem. A better approach is to incrementally develop the new subsystem and then incrementally migrate users to it.

Slides

Speaking at your company

I’d be delighted to deliver this talk at your company. See here for more details.

Need help with accelerating software delivery?

I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.

Learn more about how I can help


microservice architecture   architecting   team topologies   software delivery metrics   microservices rules  


Copyright © 2024 Chris Richardson • All rights reserved • Supported by Kong.

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.

ASK CHRIS

?

Got a question about microservices?

Fill in this form. If I can, I'll write a blog post that answers your question.

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 NPXJKULI to sign up for $95 (valid until December 25th, 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