Skip to content
Back to skills

Patterns Reference

ASecurity

Use when checking a pattern anti-pattern — over-application is the dominant failure mode in this domain — weighing a contested question, confirming whether a claim is still current (snapshot verified August 2026), finding the books and sources, or needing the problem-to-pattern table and the checklist to run before adding a pattern. Companion to the other design-patterns skills.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentspythongojavac++reactangularexpressrailsspringaws

Works with

  • api

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add the-vibey-project/vibey --skill patterns-reference --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Patterns Reference?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Patterns Reference
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/the-vibey-project-patterns-reference/badge)](https://www.skillsdirectory.com/skills/the-vibey-project-patterns-reference)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: patterns-reference
description: "Use when checking a pattern anti-pattern — over-application is the dominant failure mode in this domain — weighing a contested question, confirming whether a claim is still current (snapshot verified August 2026), finding the books and sources, or needing the problem-to-pattern table and the checklist to run before adding a pattern. Companion to the other design-patterns skills."
---

# Design Patterns: Anti-Patterns, Contested Questions, Currency, and Canon

> **Part 5 of 5** of the *Design Patterns* reference (plugin `design-patterns`), covering §14–§20. Sibling skills: `patterns-foundations-gof-and-alternatives` (§0–§5), `patterns-architectural` (§6–§7), `patterns-distributed-concurrency-and-messaging` (§8–§11), `patterns-llm-agentic-and-legacy-migration` (§12–§13). Section numbers are shared across the set; a reference written as §N → `skill` points into that sibling skill.
>
> **Currency:** Verified August 2026. See §17 below for the currency snapshot and what goes stale first.

> **How to read this.** Reference, not a catalogue. **The 23 GoF patterns are freely
> available with diagrams and code samples everywhere** — this document does not reproduce
> them. It addresses the harder questions: which ones still earn their keep, which ones
> are artifacts of 1994's languages, what replaced them, where the genuinely useful
> modern patterns live, and **when not to use any of them.**
>
> Three markers:
> - **[DURABLE]** — design forces that recur regardless of language or era.
> - **[VERSIONED]** — language features, framework practice, emerging pattern languages.
> - **[CONTESTED]** — genuine disagreement, and **this domain has more of it than most.**
>
> **⚠️ GOTCHA** boxes mark where applying a pattern makes things worse.
>
> **The three framings that organize everything below:**
> 1. **Patterns are a vocabulary, not a construction kit.** Their durable value is that
>    "this is a circuit breaker" communicates a design in four words. **Their value was
>    never that you should go looking for places to install them** — and treating the
>    catalogue as a checklist is the single most damaging misreading of the entire
>    literature (§14).
> 2. **A pattern is a solution to a *force*, and the force is what's durable — not the
>    implementation.** Many GoF implementations were workarounds for what C++ and Java
>    couldn't express in 1994. **The forces persisted; the workarounds became language
>    features** (§3 → `patterns-foundations-gof-and-alternatives`). Learn to see the force.
> 3. **Over-application is the dominant failure mode, by a wide margin.** The cost of a
>    missing pattern is some duplication you can refactor later. **The cost of an unneeded
>    pattern is permanent indirection that every future reader must decode.** As one
>    2026 practitioner framing puts it: add a pattern only when it removes duplication,
>    isolates change, or clarifies intent — **and if introducing it makes the code harder
>    to explain, it's the wrong moment for it.**

---

## §14. Anti-Patterns

**[DURABLE] Naming these is at least as valuable as naming the patterns.**

**Structural**: **God object / god class**, **anemic domain model** (⚠️ **data-bags plus a
service layer — arguably the default outcome of layered architecture done carelessly**),
**spaghetti**, **lasagna** (so many layers each adds nothing), **big ball of mud**,
**circular dependencies**, **feature envy**, **shotgun surgery** (one change touches
fifteen files).

**Pattern-specific**: **Singleton abuse** (⚠️ **global mutable state with a design-pattern
name on it** — hostile to testing, hides dependencies, causes ordering bugs), **Service
Locator** (§5 → `patterns-foundations-gof-and-alternatives`), **the Poltergeist** (a class that exists only to call another),
**BaseBean** (inheriting for convenience rather than for an is-a relationship),
**over-abstracted factories**.

**Process**: **premature optimization**, **premature generalization** (⚠️ **"we might need
this later" is the most expensive sentence in software**), **cargo cult architecture**
(⚠️ **adopting Netflix's architecture at 1/10000th of Netflix's scale**), **resume-driven
development**, **the distributed monolith** (⚠️ **microservices that must deploy together —
all the cost, none of the benefit, and the most common microservice failure mode**),
**golden hammer**, **not-invented-here**, **stringly-typed** code, **magic numbers**,
**boat anchor** (dead code kept "just in case"), **feature toggle debt**.

> **⚠️ GOTCHA — pattern over-application, stated plainly, because it is the failure mode
> this whole document exists to prevent.** Symptoms: interfaces with exactly one
> implementation; factories that construct one type; three layers of indirection between
> the caller and the work; class names ending in `Manager`, `Helper`, `Processor`, or
> `AbstractProxyFactoryBean`; **you cannot find where anything actually happens.**
>
> **The asymmetry that should govern your default**: a missing pattern costs you some
> duplication, which you can refactor when the third case appears and you can see the real
> shape. **An unnecessary pattern costs every future reader permanently, and is far harder
> to remove than to add.** When in doubt, don't.

---

## §15. Anti-Patterns Table

| Anti-pattern | Why |
|---|---|
| Learning patterns as a catalogue to install | **"Conformity to patterns is not a measure of goodness"** — Ralph Johnson, GoF co-author (§1 → `patterns-foundations-gof-and-alternatives`) |
| Adding a pattern that makes the code harder to explain | That's the signal it's premature (§2.3 → `patterns-foundations-gof-and-alternatives`) |
| Hand-rolling Iterator in a language with iteration | ⚠️ The language is the pattern (§3.1 → `patterns-foundations-gof-and-alternatives`) |
| Singleton for shared state | **Global mutable state with a nice name** (§14) |
| Interface with exactly one implementation "for testing" | Modern test tooling fakes concrete types (§5 → `patterns-foundations-gof-and-alternatives`) |
| Service Locator instead of DI | Hides dependencies rather than declaring them (§5 → `patterns-foundations-gof-and-alternatives`) |
| Container magic you can't trace by reading | Runtime failures where compile-time ones belonged (§5 → `patterns-foundations-gof-and-alternatives`) |
| Hexagonal architecture over a CRUD app | ⚠️ **If domain logic is thin, you don't need it** (§6.2 → `patterns-architectural`) |
| Tactical DDD without the strategic work | Ceremony without the benefit (§6.3 → `patterns-architectural`) |
| Microservices when teams aren't blocked on deploys | Paying the cost, not collecting the benefit (§7 → `patterns-architectural`) |
| Microservices that must deploy together | ⚠️ **Distributed monolith** (§14) |
| Adopting a hyperscaler's architecture at 1/10000th the scale | Cargo cult (§14) |
| Writing to your DB then publishing an event | ⚠️ **The dual-write problem. Real systems lose orders this way** (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Event Sourcing for CRUD | ⚠️ **Four months for a two-week feature, then rewritten** (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Choreographed saga past ~3 steps | Becomes impossible to reason about (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Treating compensation as rollback | The intermediate state was visible (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Synchronous external call with no circuit breaker | Cascading failure (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Retry without jitter | Thundering herd (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Retrying non-idempotent operations | Duplicates (§9 → `patterns-distributed-concurrency-and-messaging`) |
| **Any network call without a timeout** | ⚠️ **The most under-set config in software** (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Unbounded producer-consumer queue | A memory leak hiding the real problem (§10 → `patterns-distributed-concurrency-and-messaging`) |
| Double-checked locking by hand | Famously subtle; use the language's lazy init (§10 → `patterns-distributed-concurrency-and-messaging`) |
| Promising exactly-once delivery | At-least-once + idempotency is the achievable target (§11 → `patterns-distributed-concurrency-and-messaging`) |
| Event-carried state transfer by default | Couples consumers to your internal schema (§11 → `patterns-distributed-concurrency-and-messaging`) |
| Agent where a workflow would do | ⚠️ **Prefer predefined code paths** (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Multi-agent for a single-agent task | Over-applied buzzword (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Agentic loop with no iteration cap | A financial failure mode (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Prompts embedded in orchestration code | Treat prompts as versioned artifacts (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Framework chosen before pattern | Backwards (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Big-bang rewrite | Use Strangler Fig (§13 → `patterns-llm-agentic-and-legacy-migration`) |
| Schema change without expand-contract | The only safe way under live traffic (§13 → `patterns-llm-agentic-and-legacy-migration`) |
| "We might need this later" | ⚠️ **The most expensive sentence in software** (§14) |

---

## §16. Contested Questions

**16.1 Are GoF patterns obsolete?** §2 → `patterns-foundations-gof-and-alternatives` in full. **[CONTESTED, genuinely.** The "patterns
are C++ deficiencies" claim is historically shaky given the Smalltalk origins; the
"patterns are timeless" claim under-weights how much modern languages absorbed. **The
defensible position is per-pattern, not wholesale** — §3 → `patterns-foundations-gof-and-alternatives` audits them individually.]

**16.2 Do patterns help or hurt juniors?** *Help*: shared vocabulary, exposure to
considered designs, a path past reinventing. *Hurt*: **encourages installing patterns
rather than solving problems**, and pattern-recognition becomes a proxy for judgment.
**The teaching order that seems to work: forces first, then patterns as named responses,
and never the catalogue first.**

**16.3 OOP vs. functional vs. data-oriented?** All three have real domains. **The
industry has broadly moved toward composition over inheritance, immutability by default,
and functions as first-class**, without abandoning objects. **⚠️ Treat strong advocacy in
any direction as a signal of narrow exposure.**

**16.4 Is Clean Architecture worth its cost?** *For*: testability, replaceable
infrastructure, findable business logic. *Against*: **file-count explosion, indirection,
and genuine overkill for thin-domain applications.** Much of the criticism is really
criticism of applying it uniformly rather than of the idea.

**16.5 Microservices — solved question or ongoing mistake?** The pendulum has swung toward
modular monoliths, and **"microservices are an organizational solution adopted for
technical-sounding reasons"** is now a mainstream position rather than a contrarian one.
Still genuinely right at sufficient organizational scale.

**16.6 Is Event Sourcing worth it?** *For*: complete audit trail, temporal queries,
debugging by replay, and in some regulated domains it's a requirement. *Against*: §8 → `patterns-distributed-concurrency-and-messaging`'s
cautionary case is representative rather than exceptional. **[CONTESTED, but the evidence
leans toward "less often than practitioners think."]**

**16.7 Are the agentic patterns real patterns or vendor framing?** ⚠️ **Genuinely
unresolved and worth holding loosely.** Some — workflow-vs-agent, human-in-the-loop,
evaluator-optimizer, guardrails — describe forces that clearly recur. Others are framework
marketing with a pattern name attached. **Multiple competing taxonomies is what an
immature pattern language looks like**, and this one is two to three years old against
GoF's decade of prior art.

---

## §17. Currency Snapshot — verified August 2026

**[DURABLE] Most of this document doesn't move.** GoF is 1994, Fowler's *PoEAA* 2002,
Hohpe & Woolf 2003, Evans' *DDD* 2003 — and the forces they describe are unchanged.
Here is what actually shifted.

| Thing | Status as of Aug 2026 | Decay risk |
|---|---|---|
| **The GoF critique** | ⚠️ **Now mainstream rather than contrarian.** 2026 commentary describes a **"post-pattern" turn toward "enlightened simplicity"**, attributed to language maturation, FP, data-oriented design, and cognitive load theory. Counter-position remains live: patterns originated as much in **Smalltalk** (dynamic, first-class functions) as C++, so the "C++ deficiency" story is historically incomplete | Low |
| **Absorbed patterns** | **Iterator, Singleton, Command, Strategy, Template Method** are largely language features or trivial in modern languages. **Modules act as natural singletons in Python and JS.** Frameworks (Spring, .NET, Angular) implement Factory/Proxy/Observer implicitly — **you configure them rather than write them** | Low |
| **Practitioner heuristic** | Widely-repeated 2026 framing: **"Start simple. Add a pattern only when it removes duplication, isolates change, or clarifies intent. If introducing a pattern makes the code harder to explain, it is probably the wrong moment for it."** Composition over inheritance is the settled default | Low |
| **Distributed data patterns** | **Outbox + Saga + CQRS (+ Event Sourcing) is the established production stack** for event-driven microservices. **Debezium/CDC** for log-based publishing. ⚠️ **Dedicated workflow engines (Temporal, Watermill and similar) increasingly preferred over hand-rolled orchestration** | Medium |
| **Saga guidance** | Published heuristic: **choreography for 2–3 steps, orchestration for 4+ or complex logic**. Choreography-plus-Postgres-outbox with a background relay is a common concrete pattern | Medium |
| **⚠️ Event Sourcing caution** | Now widely stated rather than fringe: **event notification covers the majority of cases, CQRS most of the remainder, and Event Sourcing is for the minority where a full audit trail is a hard business requirement.** Documented failure case: a 3-junior team choosing full ES for a profile CRUD — **4 months for what should have taken 2 weeks, undebuggable state-reconstitution bugs, rewritten as REST in 3 weeks** | Low |
| **⚠️ Circuit breaker adoption** | Survey work on microservice deployments found **circuit breaker notably less adopted than API gateway** — roughly half the usage — **which the researchers note weakens resilience** in exactly the systems that need it | Medium |
| **⚠️ Agentic patterns** | **The live, unsettled pattern language.** At least three overlapping taxonomies in circulation (Ng's four, Anthropic's workflow patterns, and emergent reliability/memory patterns from 2025–26). Core distinction — **workflows = predefined code paths; agents = model decides next step** — is stable and useful. Academic work is now presenting FM/agent patterns **in GoF format**. **ReAct predates the current framing by ~2 years.** Multi-agent widely described as a 2023–24 buzzword that is over-applied | **High** |
| **Agentic operational practice** | **Prompts as versioned code**; step-level tracing with token-cost and guardrail-violation metrics (MLflow, LangSmith and similar); **iteration caps as a cost control**; **progressive disclosure against "context rot"** | **High** |

**Goes stale fastest:** §12 → `patterns-llm-agentic-and-legacy-migration` entirely. **Essentially never stale:** §1 → `patterns-foundations-gof-and-alternatives`, §2 → `patterns-foundations-gof-and-alternatives`'s forces
argument, §5 → `patterns-foundations-gof-and-alternatives`, §6.2 → `patterns-architectural`, §9 → `patterns-distributed-concurrency-and-messaging`, §13 → `patterns-llm-agentic-and-legacy-migration`, §14, §15.

---

## §18. The Canon

### 18.1 Books

| Author | Work | Why |
|---|---|---|
| **Gamma, Helm, Johnson & Vlissides** | ***Design Patterns*** (1994) | The original. ⚠️ **Read with §2 → `patterns-foundations-gof-and-alternatives` in hand** — it's a historical document with durable content, not a manual |
| **Fowler** | ***Patterns of Enterprise Application Architecture*** (2002) | ⚠️ **Arguably more useful than GoF for most working engineers.** Repository, Unit of Work, Active Record, Data Mapper |
| **Fowler** | *Refactoring* (2nd ed.) | The other half — how to get *to* a design, not just name it |
| **Hohpe & Woolf** | ***Enterprise Integration Patterns*** (2003) | §11 → `patterns-distributed-concurrency-and-messaging`, and **the vocabulary is still standard 20+ years on** |
| **Evans** | ***Domain-Driven Design*** (2003) | Dense. **Read Vernon's *Implementing DDD* or *DDD Distilled* first** |
| **Nygard** | ***Release It!*** (2nd ed.) | ⚠️ **§9 → `patterns-distributed-concurrency-and-messaging`'s source, and the best book on production failure modes.** If you read one book here, consider this one |
| **Richardson** | *Microservices Patterns* | §7–§8 → `patterns-architectural`, `patterns-distributed-concurrency-and-messaging`, and **microservices.io** is the free companion catalogue |
| **Kleppmann** | *Designing Data-Intensive Applications* | The forces underneath §8 → `patterns-distributed-concurrency-and-messaging` |
| **Newman** | *Building Microservices*; *Monolith to Microservices* | §7 → `patterns-architectural` and §13 → `patterns-llm-agentic-and-legacy-migration` |
| **Feathers** | *Working Effectively with Legacy Code* | §13 → `patterns-llm-agentic-and-legacy-migration`, and still unmatched |
| **Freeman & Robson** | *Head First Design Patterns* | **The most approachable way in.** Updated for modern Java |
| **Ramalho** | *Fluent Python* | ⚠️ **Ch. 10, "Design Patterns with First-Class Functions," is the single best demonstration of §4 → `patterns-foundations-gof-and-alternatives`'s argument** |
| **Hunt & Thomas** | *The Pragmatic Programmer* | The judgment layer around all of it |
| **Alexander** | *A Pattern Language* | Where the whole idea came from. Architecture, not software |

### 18.2 Sites and people
**refactoring.guru** (the best free pattern catalogue — clear diagrams, multi-language),
**python-patterns.guide** (⚠️ **the sharpest published critique of GoF-in-a-modern-language**),
**martinfowler.com** (bliki — the reference for most of this vocabulary),
**microservices.io** (Chris Richardson's free catalogue for §7–§8 → `patterns-architectural`, `patterns-distributed-concurrency-and-messaging`),
**Microsoft's Cloud Design Patterns** and **AWS Prescriptive Guidance** (solid, vendor-shaped),
**c2.com wiki** (where the patterns community argued it out originally — still worth reading).

**People**: **Martin Fowler**, **Kent Beck**, **Michael Nygard**, **Gregor Hohpe**,
**Eric Evans** and **Vaughn Vernon**, **Sam Newman**, **Chris Richardson**,
**Rich Hickey** (*Simple Made Easy* — ⚠️ **the best single talk on why simplicity beats
familiarity**), **Sandi Metz** (OO design, and unusually good on when *not* to abstract),
**Kevlin Henney**, **Ralph Johnson** (§1 → `patterns-foundations-gof-and-alternatives`'s quote).

---

## §19. Quick Reference

### 19.1 Problem → pattern

| Problem | Pattern |
|---|---|
| Their interface doesn't match mine | **Adapter** (§3.2 → `patterns-foundations-gof-and-alternatives`) |
| Complex subsystem, simple need | Facade |
| Layer behaviour composably | **Decorator** / middleware |
| Notify many of a change | Observer / pub-sub |
| Many optional construction params | Builder — ⚠️ **unless your language has named args** |
| Behaviour varies by state | State (explicit machine) |
| Operations over a stable type hierarchy | Visitor — ⚠️ **or pattern matching** (§4 → `patterns-foundations-gof-and-alternatives`) |
| Swap an algorithm | ⚠️ **A function parameter** (§4 → `patterns-foundations-gof-and-alternatives`) |
| Testable business logic | **Hexagonal / ports and adapters** (§6.2 → `patterns-architectural`) |
| Same word, different meanings across the business | **Bounded contexts** (§6.3 → `patterns-architectural`) |
| Integrating a model I don't control | **Anti-Corruption Layer** (§7 → `patterns-architectural`) |
| Write to DB *and* publish an event | ⚠️ **Transactional Outbox** (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Business operation spanning services | **Saga** — choreography ≤3 steps, else orchestration (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Reads and writes have different shapes | CQRS (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Full audit trail is a hard requirement | Event Sourcing — ⚠️ **and only then** (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Duplicate messages | Idempotent consumer / inbox (§8 → `patterns-distributed-concurrency-and-messaging`) |
| Downstream failing, don't cascade | **Circuit breaker** (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Transient failure | Retry with backoff **and jitter** (§9 → `patterns-distributed-concurrency-and-messaging`) |
| One dependency shouldn't consume everything | Bulkhead (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Overloaded | Load shedding — ⚠️ **reject early, don't collapse** (§9 → `patterns-distributed-concurrency-and-messaging`) |
| Replace a legacy system | **Strangler Fig** (§13 → `patterns-llm-agentic-and-legacy-migration`) |
| Change a schema under live traffic | **Expand-contract** (§13 → `patterns-llm-agentic-and-legacy-migration`) |
| Verify a migration | **Parallel run** (§13 → `patterns-llm-agentic-and-legacy-migration`) |
| Multi-step LLM task | ⚠️ **A workflow, not an agent, if you can sequence it** (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| LLM needs current or private data | RAG (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| LLM output quality varies | Evaluator-optimizer with **separated roles** (§12 → `patterns-llm-agentic-and-legacy-migration`) |
| Agent could do something costly | **Human-in-the-loop gate + iteration cap** (§12 → `patterns-llm-agentic-and-legacy-migration`) |

### 19.2 Before adding a pattern
- [ ] What **force** am I resolving? Can I state it in one sentence?
- [ ] Does my language already have this as a feature? (§3 → `patterns-foundations-gof-and-alternatives`, §4 → `patterns-foundations-gof-and-alternatives`)
- [ ] Do I have **two** cases, or am I speculating about the second?
- [ ] Does this **remove duplication, isolate change, or clarify intent**?
- [ ] Would a new team member find the code **easier** to explain, or harder?
- [ ] What does it **cost** — and have I said that out loud?
- [ ] Am I solving a problem, or demonstrating knowledge?

---

## §20. Sources and Method

**Method.** Narrative review, written as **judgment guidance rather than a catalogue** —
the 23 GoF patterns are exhaustively documented for free elsewhere and reproducing them
adds nothing. The durable material rests on the primary pattern literature (GoF, Fowler,
Hohpe & Woolf, Evans, Nygard) and on failure modes reported consistently across two
decades of practice. Three targeted searches were run in **August 2026** on the areas where
the picture could have moved: the current standing of the GoF critique, distributed-pattern
practice, and the emerging agentic pattern language.

**⚠️ A note on §2 → `patterns-foundations-gof-and-alternatives` and §16 specifically.** This is a domain with real, live disagreement
among competent practitioners, and I have tried to **give each side its strongest form
rather than adjudicate.** Where I take a position — §2.3 → `patterns-foundations-gof-and-alternatives`'s synthesis, §14's asymmetry
argument — I've marked it as the position this document takes, not as consensus.

**Search log** (August 2026): GoF relevance and critique in modern languages ·
distributed-system patterns (saga, outbox, circuit breaker, CQRS, event sourcing) in 2026
practice · LLM and agentic design patterns and their taxonomies.

**Primary and near-primary sources consulted (selected):**
- **python-patterns.guide** for the sharpest form of the "patterns as language
  deficiencies" argument; a **Microsoft archived blog post** and related commentary for the
  Smalltalk-origins rebuttal; **Fluent Python** Ch. 10 (and Ralph Johnson's quote via its
  epigraph); **Kansas State's CC 410 textbook** for the standard academic critique;
  practitioner posts from 2026 for the "post-pattern"/enlightened-simplicity framing and
  the start-simple heuristic
- **microservices.io** (Chris Richardson) for the saga and outbox definitions; 2026
  practitioner write-ups for the choreography/orchestration step heuristic, the documented
  order-loss and Event-Sourcing-for-CRUD cautionary cases, and the
  event-notification/CQRS/ES proportions; an academic survey of microservice architecture
  patterns for the circuit-breaker adoption finding
- **Anthropic's *Building Effective Agents*** framing (workflows vs. agents) as reported
  in practitioner coverage; **Databricks' agent system design patterns** documentation;
  **arXiv 2601.19752** on agentic design patterns as a system-theoretic framework, which
  notes FM/agent patterns being presented in GoF format; 2026 pattern catalogues describing
  the Ng / Anthropic / emergent taxonomy overlap

**Confidence statement.** **High confidence** in §1 → `patterns-foundations-gof-and-alternatives`, §3–§7 → `patterns-foundations-gof-and-alternatives`, `patterns-architectural`, §9–§11 → `patterns-distributed-concurrency-and-messaging`, §13–§15 → `patterns-llm-agentic-and-legacy-migration` — these rest on
the primary pattern literature and long-stable practice rather than on anything searched.
**High confidence** that the §2 → `patterns-foundations-gof-and-alternatives` debate exists in the form described, with **explicitly no
position on who is right**, because it is a values disagreement about cost and clarity that
evidence does not settle. **Moderate confidence** in §8 → `patterns-distributed-concurrency-and-messaging`'s specific heuristics — the
choreography-vs-orchestration step counts and the event-notification/CQRS/ES proportions
are **practitioner rules of thumb from individual write-ups, not measured findings**, and
should be treated as starting points rather than thresholds. The cautionary cases in §8 → `patterns-distributed-concurrency-and-messaging` are
**reported anecdotes**; I've included them because they're representative of a widely
described pattern of failure, not because any single one is authoritative. **Lower
confidence in §12 → `patterns-llm-agentic-and-legacy-migration`**, and deliberately so: the agentic pattern language is 2–3 years old,
naming is unstable, several sources are vendor-adjacent with obvious incentives, and
**multiple competing taxonomies is exactly what an immature pattern language looks like** —
which is why §16.7 leaves the "real patterns or vendor framing" question open rather than
resolving it.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…