Reminder: Microservices ate my application - an anti-pattern

You are receiving this email because you subscribed to microservices.io.


Learn about the service collaboration patterns (Saga, API composition, etc) in my online, self-paced bootcamp. It's available for USD $95 - limited time early. Find out more and enroll.

I'm available to help your organization accelerate software delivery: architecture consulting and workshops. Learn more


Microservices adoption anti-pattern: microservices ate my application

It’s been a while since I’ve written about anti-patterns of microservices adoption. These days, however, I often encounter a previously undocumented anti-pattern that I’ve named Microservices ate my application. It describes a situation where technology - in this case the microservice architecture - becomes a scapegoat for the mistakes made by the engineering organization. The anti-pattern’s name is inspired by the English expression The dog ate my homework, which refers to an implausible excuse for failing to complete a homework assignment.

The anti-pattern: microservices ate my architecture

An instance of this anti-pattern looks something like this. An organization struggles to use the microservice architecture pattern to build an application. They encounter numerous persistent problems, including slow development, inconsistent data, poor performance, and low availability. But instead of taking ownership of the decisions that they made, which is the reason for the trainwreck, the organization blames the microservice architecture.

Swarms of microservices don’t attack projects

While it’s easy and convenient to blame the microservice architecture, the reality is that microservices do not travel in swarms attacking innocent projects. The root cause of the train wreck lies elsewhere - specifically in a combination of two problems. The first problem is that organizations sometimes make poor architectural design decisions. The second problem is that organizations often ignore the warning signs that something is amiss. Let’s look at each problem in turn starting with poor architectural decision making.

Problem #1: Poor architectural design decisions => poor architecture

An application’s architecture is the composition of a set of design decisions. The quality of an architecture is, therefore, a reflection of the quality of the architectural design decisions. Poor design decisions often lead to architectural problems - an issue that is especially true when using the microservice architecture pattern. There are numerous design decisions to make, many of which are highly consequential, even small missteps can have far-reaching impacts.

Problem #2: Ignoring signs that something is amiss

The second reason train wreck projects occur is that organizations ignore clear warning signs signaling the need for a course correction. Development projects don’t fail overnight — there are always early indicators that something is going wrong. An organization must be vigilant and act when there are signs that something is amiss. For example, if development is slowing down, it’s essential to investigate why.

Let’s now look at ways to avoid this anti-pattern.

Avoiding the Microservices ate my application anti-pattern

There are four recommended ways to avoid the Microservices ate my application anti-pattern:

  1. Own your design decisions
  2. Improve your design decision making process
  3. Reduce risk by make smaller, safer and reversible changes.
  4. Track and improve metrics

Let’s look at each recommendation in turn.

Recommendation #1: own your design decisions

The first of three recommendations is for you and your organization to take ownership of your design decisions.
If a decision turns out to be flawed, take responsibility for it — that’s part of the process.
Mistakes are inevitable, but they also present valuable learning opportunities.
Freedom to admit your mistakes, of course, requires a generative culture that encourages learning and growth.

Recommendation #2: improve your design decision making process

The second recommendation is for you and your organization to improve your process for making architectural design decisions. A good way to make better design decisions it is to practice deliberative design. Deliberative design is a 7 step process:

  1. Understand the context
  2. Define the problem
  3. Define the criteria for assessing suitability of a solution
  4. Find candidate solutions
  5. Evaluate the trade-offs of each candidate solution
  6. Pick the best solution
  7. Document the solution

Examples of critical architectural design decisions that should be made using a deliberative design process include:

Recommendation #3: make smaller, safer and reversible changes

The third recommendation is to reduce risk by making smaller, safer and reversible changes. You will get feedback from production and users much faster if you make smaller changes. It will also make it much easier to recover from mistakes. For example, an organization should incrementally refactor a monolith to microservices using the Strangler Fig pattern rather than doing a big bang rewrite. For more details, see the series of articles that starts with Microservices rules #10: Make smaller, safer, and reversible changes - part 1/

Recommendation #4: track and improve metrics

The fourth recommendation is for an organization to continuously track and review key metrics (microservices rules #1) including:

  • The DORA metrics
  • Design-time coupling metrics, e.g. analyze Git histories to identify services that regularly change in lock step and track frequency of breaking changes made to each service’s API
  • Team sentiment including the DevEx metrics

These metrics should be regularly reviewed and action taken if there are problems.

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

Older messages

Reminder: The problem with tight runtime coupling and how to avoid it

Tuesday, January 14, 2025

You are receiving this email because you subscribed to microservices.io On Wednesday, January 22, 2025 at 6pm, I'll be giving a talk in Melbourne Australia.The talk is: Enabling DevOps and Team

The problem with tight runtime coupling and how to avoid it

Thursday, January 9, 2025

You are receiving this email because you subscribed to microservices.io On Wednesday, January 22, 2025 at 6pm, I'll be giving a talk in Melbourne Australia.The talk is: Enabling DevOps and Team

Reminder: Loose design-time coupling: part of the wiring of a winning organization

Friday, November 15, 2024

You are receiving this email because you subscribed to microservices.io Next week, I'll be teaching a public workshop in Milan. I hope you will enroll. Loose design-time coupling: part of the

Loose design-time coupling: part of the wiring of a winning organization

Tuesday, November 12, 2024

You are receiving this email because you subscribed to microservices.io Next week, I'll be teaching a public workshop in Milan. I hope you will enroll. Loose design-time coupling: part of the

Reducing insider trading in a microservice architecture

Wednesday, November 6, 2024

You are receiving this email because you subscribed to microservices.io In November, I'll be teaching public workshops in Berlin and Milan. I hope you will enroll. My service collaboration patterns

You Might Also Like

⚡ THN Weekly Recap: GitHub Supply Chain Attack, AI Malware, BYOVD Tactics, and More

Monday, March 24, 2025

Don't miss out on this week's critical updates on patching, threats, and system protection. ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏ ‌ ͏

Import AI 405: What if the timelines are correct?

Monday, March 24, 2025

Plus: Consciousness and LLMs, human augmentation, and realistic cyber offense testing ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

⚙️ Court docs reveal Meta's Llama revenue

Monday, March 24, 2025

Plus: The gaps in AI for mental health ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

Critical Next.js Vulnerability Allows Attackers to Bypass Middleware Authorization Checks

Monday, March 24, 2025

THN Daily Updates Newsletter cover ⚡ LIVE WEBINAR ➟ Your AI is Outrunning Your Security. Here's How to Keep Up, with Reco Don't let hidden AI threats derail your success--learn how to empower

Post from Syncfusion Blogs on 03/24/2025

Monday, March 24, 2025

New blogs from Syncfusion ® Easily Build an AI-Powered Chat App Using WPF AI AssistView and OpenAI By Ganesh Mariappan This blog explains how to build an AI-powered smart chat app using WPF AI

🫤 Social Media Settings Are Intentionally Confusing — Smart Home Automations That Feel Like Magic

Monday, March 24, 2025

Also: You Don't Need an SD Card to Add Physical Storage to Your Phone How-To Geek Logo March 24, 2025 Did You Know The tallest cactus species in the world is the Pachycereus pringlei, also known as

📽 Webinar: Reinforcement Fine-tuning: Custom AI, No Labeled Data

Monday, March 24, 2025

Ready to learn how to train highly accurate, custom AI models – without massive labeled data? ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Re: Tomorrow's Photo Management Class: How to sign up!

Monday, March 24, 2025

This is your final opportunity! On Tuesday, March 25, at 4:30 pm ET, we are hosting our last free Photo Management Class. After that, we won't be offering this class again this year. Sign up now

WP Weekly 235 - Builders - 33K Users in 2024, New SVG Block, Accessible Infographics

Monday, March 24, 2025

Read on Website WP Weekly 235 / Builders Page Builders are still going strong, be it Divi adding 33K+ users in 2024 and Beaver Builder releasing a big update removing DIV wrappers. Also, in this issue,

SRE Weekly Issue #469

Monday, March 24, 2025

View on sreweekly.com A message from our sponsor, incident.io: Speed isn't everything. We studied 100K+ incidents to find out what actually makes for good incident management—from detection to