Skip to content
Blueprint Catalog

    ↑↓ move · Enter open · Esc close

    05 — Library · 22 anti-patterns

    Anti-patterns

    Recurring architecture mistakes: what you see, what they cost, and what to do instead.

    Anti-patterns

    Showing 9 of 22 anti-patterns

    • AP-200

      Alert Fatigue

      Delivery & Operations

      On-call engineers receive hundreds of alerts a week, most of them noise or symptoms of the same cause, and learn to acknowledge without reading. Real incidents are found by customers first.

      Costs · Response slows, important pages are missed, and the on-call rotation burns people out.

      Instead · Alert on user-facing symptoms against service level objectives, make every page actionable, route the rest to dashboards or tickets, and review alert volume as an operational metric.

      Cured by · SLO and Error Budget,Distributed Tracing

      Terms · Service Level Objective,Observability

      Reference ↗

    • AP-140

      Anemic Domain Model

      Application

      Domain objects are bags of getters and setters with no behavior, while all business rules live in service classes that manipulate them. The same rule is checked in several places, slightly differently.

      Costs · Rules scatter and drift, invariants are easy to bypass, and the code pays for an object model without gaining the encapsulation that justifies one.

      Instead · Move rules into the entities and aggregates that own the data, keep services thin and focused on coordination, and keep infrastructure concerns outside the domain core.

      Cured by · Aggregate,Bounded Context,Hexagonal Architecture

      Terms · Domain-Driven Design,Bounded Context

      Reference ↗

    • AP-100

      Application-Named Capabilities

      Capability Modeling

      Capabilities carry system or product names, such as CRM, ERP Finance or Data Lake, or exist mainly to give each application a box. Replacing a system would mean renaming the capability.

      Costs · The map cannot show overlap or gaps in the application portfolio, because it is the portfolio. Rationalization and vendor-neutral planning have nothing stable to compare against.

      Instead · Name the business ability the system supports, such as Customer Relationship Management becoming Account Management, and record which Business Applications realize each capability as a separate mapping.

      Terms · Business Capability,Business Application,Application Portfolio,Application Rationalization

    • AP-010

      Big Ball of Mud

      Application

      A system with no discernible structure: modules call each other freely, data is shared through globals or common tables, and nobody can draw its components without caveats. Every change touches several unrelated places and needs the one person who remembers why.

      Costs · Change gets slower and riskier every quarter, onboarding takes months, and the system cannot be split, scaled or replaced in parts because nothing has a boundary to cut along.

      Instead · Find the domains hiding in the code and draw explicit module boundaries around them, enforce those boundaries with checks in the build, and extract or replace pieces one boundary at a time.

      Cured by · Modular Monolith,Bounded Context,Fitness Functions,Strangler Fig

      Terms · Monolith,Technical Debt,Bounded Context

      Reference ↗

    • AP-190

      Big-Bang Rewrite

      Application

      A legacy system is to be replaced in one cutover after a multi-year rebuild. The old system keeps changing meanwhile, the new one chases it, and go-live keeps slipping.

      Costs · Value arrives only at the end, if at all; risk concentrates in one cutover; and hidden behavior of the old system is discovered in production.

      Instead · Replace the system piece by piece behind a routing layer, move one capability or user group at a time, and retire old parts as each new one proves itself in production.

      Cured by · Strangler Fig,Anti-Corruption Layer,Feature Flags

      Terms · Technical Debt,Application Rationalization

      Reference ↗

    • AP-110

      Boiling the Ocean

      Capability Modeling

      A capability modeling effort that aims to reach L4 or L5 across the whole enterprise before anyone uses it. Workshops run for months, the model grows to thousands of nodes, and no decision has used it yet.

      Costs · Sponsors lose patience before value appears, detail goes stale faster than it is written, and the depth is inconsistent where enthusiasm ran out.

      Instead · Build L1 and L2 across the enterprise first, use them for a real decision, and deepen to L3 or below only where a specific investment, rationalization or risk question needs it.

      Terms · Capability Map,Capability Level,Capability Heat Map

    • AP-130

      Chatty Services

      Integration

      A single user action fans out into dozens of small remote calls, often one per field or child record, and page times grow with the size of the data rather than the work done.

      Costs · Latency and failure probability multiply with each round trip, network and gateway costs climb, and the services are coupled at a fine grain that makes change hard.

      Instead · Design coarser operations around what callers need, batch reads, aggregate for each client in a dedicated layer, cache stable data, and revisit boundaries that force constant cross-service calls.

      Cured by · Backend for Frontend,Scatter-Gather,Cache-Aside,Bounded Context

      Terms · API,Microservice

      Reference ↗

    • AP-220

      CMDB Dumping Ground

      Data

      Everything discovery finds is loaded into the CMDB with no class model, owner or stated purpose. Duplicate and stale Configuration Items pile up, relationships are missing, and teams keep their own lists instead.

      Costs · Nobody trusts it, so impact analysis, change risk and service mapping fall back to tribal knowledge, and the platform's value case erodes while license and discovery costs continue.

      Instead · Start from the processes the CMDB must serve, define the classes and relationships they need, assign owners and health checks for each class, and load only data with a known source and consumer.

      Terms · CMDB,Configuration Item,Data Governance,Application Service

    • AP-160

      Data Swamp

      Data

      A data lake where datasets land without owners, schemas, quality checks or lineage. Analysts find several copies of the same table and cannot tell which is current or correct.

      Costs · Trust collapses, so teams build private extracts and the platform pays for storage that answers nothing. Sensitive data hides in places no one governs.

      Instead · Require an owner, schema and description for each dataset, separate raw from curated layers, record lineage, and publish trusted datasets as products with quality checks consumers can see.

      Cured by · Medallion Lakehouse Layering,Data Mesh,Schema Registry

      Terms · Data Product,Data Lineage,Data Governance