EAOS

EAOS · Knowledge

Enterprise Anti-Pattern Catalog

Fehlentwicklungen erkennen, begründen und systematisch korrigieren.

Architecture

Big Ball of Mud

Uncontrolled dependencies and unclear boundaries.

Microservices

Distributed Monolith

Services deploy separately but must change together.

Microservices

Shared Database

Independent services bypass ownership through one schema.

Integration

Chatty API

Excessive fine-grained network calls.

Architecture

God Service

One service owns unrelated capabilities.

DDD

Anemic Domain Model

Business logic lives outside domain objects.

DDD

CRUD over Domain

Business processes reduced to generic data operations.

Architecture

Cyclic Dependencies

Modules depend on each other in loops.

Governance

Golden Hammer

One technology is forced onto every problem.

Governance

Resume-Driven Architecture

Technology choice follows novelty rather than need.

Resilience

Retry Storm

Unbounded retries amplify an outage.

Resilience

Infinite Timeout

Calls wait without a defined bound.

Performance

Cache Everything

Caching is applied without consistency design.

Architecture

Premature Distribution

A simple domain is split too early.

Performance

Premature Optimization

Complexity is added without evidence.

Integration

Synchronous Event Chain

Event consumers form a fragile synchronous path.

Integration

Event Soup

Events lack ownership and semantic discipline.

Integration

Schema by Accident

Payloads evolve without contracts.

Integration

Dual Write

Database and broker are updated independently.

Messaging

Poison Message Loop

A failing message is retried forever.

Security

Security through Obscurity

Protection relies on secrecy of implementation.

Security

Overprivileged Service

A workload has broader access than required.

Security

Hard-coded Secret

Credentials are stored in source or images.

Security

JWT as Database

Large mutable state is embedded in tokens.

Security

Missing Tenant Boundary

Tenant data separation is implicit or incomplete.

Security

Audit after the Fact

Auditability is added too late.

Privacy

PII Everywhere

Personal data is copied without control.

Governance

Permanent Exception

Temporary waivers never expire.

Compliance

Checkbox Compliance

Controls are marked complete without evidence.

Governance

Unowned Risk

A risk exists without an accountable owner.

Operations

Snowflake Environment

Each environment is manually unique.

Operations

Manual Production Fix

Runtime changes bypass version control.

Observability

Alert Flood

Too many low-value alerts obscure incidents.

Observability

Dashboard Cemetery

Dashboards exist without users or actions.

Observability

Log and Pray

Logs replace purposeful telemetry design.

Resilience

Backup without Restore

Backups exist but recovery is untested.

Resilience

Single Region Assumption

Critical continuity depends on one location.

Cloud

Pet Server

Servers are manually maintained as unique assets.

Cloud

Kubernetes for Everything

Orchestration is adopted without workload need.

Cloud

Sidecar Explosion

Sidecars create hidden resource and lifecycle cost.

Data

Data Swamp

Data accumulates without quality and ownership.

Data

Data Copy Sprawl

Uncontrolled copies cause inconsistency and exposure.

Data

One Database to Rule Them All

All workloads are forced into one shared store.

Data

Reporting on Production

Analytical load impacts operational systems.

Data

Unversioned Migration

Schema changes lack ordered, repeatable evolution.

AI

Model without Evaluation

AI is deployed without reproducible quality tests.

AI

Prompt in Source Everywhere

Prompt logic is duplicated and unmanaged.

AI

Agent without Boundaries

An agent has excessive tools and autonomy.

AI

RAG without Retrieval Quality

Generation is added before retrieval is validated.

AI

AI as Authority

Model output is treated as unquestionable fact.

Architecture

Layer Cake

Layer Cake creates avoidable architecture risk.

Architecture

Interface Explosion

Interface Explosion creates avoidable architecture risk.

Architecture

Abstraction without Need

Abstraction without Need creates avoidable architecture risk.

Architecture

Mega Module

Mega Module creates avoidable architecture risk.

Architecture

Hidden Coupling

Hidden Coupling creates avoidable architecture risk.

Architecture

Architecture by Diagram Only

Architecture by Diagram Only creates avoidable architecture risk.

Architecture

Framework-Coupled Domain

Framework-Coupled Domain creates avoidable architecture risk.

Architecture

Package by Technical Layer Only

Package by Technical Layer Only creates avoidable architecture risk.

Architecture

Orphan Module

Orphan Module creates avoidable architecture risk.

Architecture

Versioned Copy Architecture

Versioned Copy Architecture creates avoidable architecture risk.

Integration

Point-to-Point Spaghetti

Point-to-Point Spaghetti creates avoidable integration risk.

Integration

ESB as Business Brain

ESB as Business Brain creates avoidable integration risk.

Integration

Shared Event Topic

Shared Event Topic creates avoidable integration risk.

Integration

Consumer-Specific Event

Consumer-Specific Event creates avoidable integration risk.

Integration

Breaking Contract Release

Breaking Contract Release creates avoidable integration risk.

Integration

Polling Everywhere

Polling Everywhere creates avoidable integration risk.

Integration

Webhook without Retry

Webhook without Retry creates avoidable integration risk.

Integration

Unbounded Payload

Unbounded Payload creates avoidable integration risk.

Integration

RPC over Kafka

RPC over Kafka creates avoidable integration risk.

Integration

No Idempotency

No Idempotency creates avoidable integration risk.

Delivery

Long-Lived Feature Branch

Long-Lived Feature Branch creates avoidable delivery risk.

Delivery

Manual Gatekeeping

Manual Gatekeeping creates avoidable delivery risk.

Delivery

Pipeline Snowflake

Pipeline Snowflake creates avoidable delivery risk.

Delivery

Environment Drift

Environment Drift creates avoidable delivery risk.

Delivery

Release Train Bottleneck

Release Train Bottleneck creates avoidable delivery risk.

Delivery

Config in Image

Config in Image creates avoidable delivery risk.

Delivery

Test Later

Test Later creates avoidable delivery risk.

Delivery

Always Green Dashboard

Always Green Dashboard creates avoidable delivery risk.

Delivery

Rollback by Hope

Rollback by Hope creates avoidable delivery risk.

Delivery

Unreviewed Hotfix

Unreviewed Hotfix creates avoidable delivery risk.

Governance

Architecture Police

Architecture Police creates avoidable governance risk.

Governance

Committee Bottleneck

Committee Bottleneck creates avoidable governance risk.

Governance

Document and Forget

Document and Forget creates avoidable governance risk.

Governance

Metric Gaming

Metric Gaming creates avoidable governance risk.

Governance

Policy without Remediation

Policy without Remediation creates avoidable governance risk.

Governance

Tool-First Governance

Tool-First Governance creates avoidable governance risk.

Governance

Ownership by Assumption

Ownership by Assumption creates avoidable governance risk.

Governance

Review without Evidence

Review without Evidence creates avoidable governance risk.

Governance

Roadmap without Capacity

Roadmap without Capacity creates avoidable governance risk.

Governance

Decision without Consequences

Decision without Consequences creates avoidable governance risk.

Performance

N+1 Query

N+1 Query creates avoidable performance risk.

Performance

Unbounded Queue

Unbounded Queue creates avoidable performance risk.

Performance

Thread per Everything

Thread per Everything creates avoidable performance risk.

Performance

No Backpressure

No Backpressure creates avoidable performance risk.

Performance

Huge Batch

Huge Batch creates avoidable performance risk.

Performance

Tiny Batch

Tiny Batch creates avoidable performance risk.

Performance

Global Lock

Global Lock creates avoidable performance risk.

Performance

Synchronous Fan-Out

Synchronous Fan-Out creates avoidable performance risk.

Performance

Unbounded Cardinality

Unbounded Cardinality creates avoidable performance risk.

Performance

Load Test in Production Only

Load Test in Production Only creates avoidable performance risk.

⌂ Cockpit