These aren't recommendations. They're the books I've lived with long enough that their ideas became instincts. Every one of them describes a problem that's showing up again in agentic systems — agent boundaries are bounded contexts, tool routing is chain of responsibility, memory management is session state. The patterns didn't change. The substrate did.

Architecture & Design

Patterns of Enterprise Application Architecture

Martin Fowler · Addison-Wesley · 2002

The catalog that named the patterns most developers use without knowing it. Gateway, Repository, Unit of Work, Data Mapper — these aren't enterprise-only concepts.

In agentic systems, the session-state patterns reappear as agent memory strategies. The Gateway pattern is exactly what a tool adapter is.

architecture patterns agent memory

Design Patterns: Elements of Reusable Object-Oriented Software

Gamma, Helm, Johnson, Vlissides · Addison-Wesley · 1994

The Gang of Four book. Still the most precise vocabulary for structural decisions in software.

Tool routing is Chain of Responsibility. Model selection is Strategy. Event-driven agent communication is Observer. The book is 30 years old and describes your architecture better than your architecture docs do.

design patterns tool routing

Domain-Driven Design: Tackling Complexity in the Heart of Software

Eric Evans · Addison-Wesley · 2003

Bounded contexts, ubiquitous language, aggregates, domain events. Evans gave us the language for decomposing complex domains into manageable, autonomous pieces.

In multi-agent systems, bounded contexts are the natural unit of agent specialization. The ubiquitous language problem is just harder when one of the speakers hallucinates.

domain modeling bounded contexts agent specialization

Clean Architecture

Robert C. Martin · Prentice Hall · 2017

The dependency rule: source code dependencies must point inward, toward higher-level policies, never toward lower-level mechanisms.

Swapping Claude for GPT should touch exactly one adapter at the outer ring.

architecture dependency rule llm adapters

Integration & Delivery

Enterprise Integration Patterns

Gregor Hohpe & Bobby Woolf · Addison-Wesley · 2003

Message channels, routers, transformers, dead-letter queues, saga patterns.

Multi-agent orchestration is messaging. Every "agent framework" released since 2023 is a partial reimplementation of this book.

integration messaging multi-agent

Continuous Delivery

Jez Humble & David Farley · Addison-Wesley · 2010

Feedback latency determines quality. The faster you learn whether a change works, the better your software gets.

Eval suites are your test stage. Canary deployments are your production gate.

delivery feedback loops agent evals

Legacy & Evolution

Working Effectively with Legacy Code

Michael Feathers · Prentice Hall · 2004

Legacy code is code without tests. Feathers' contribution is the concept of seams — points where you can alter behavior without editing the code.

LLM calls are the ultimate legacy code: opaque, non-deterministic, untestable without seams. If you're writing AI code without reading Feathers, your test suite is a lie.

testing seams llm testability

Agentic Era Series

These readings inform an ongoing essay series at thoughtworks.elizaga.dev.