I've spent a career internalizing the canonical texts of software design — Fowler, Evans, Hohpe, Martin, Feathers, Humble — living with their ideas long enough that they stopped feeling like frameworks and started feeling like instincts. Now we're in the agentic era, and the same forces are surfacing again: coupling, cohesion, feedback loops, reversibility. Different substrate, same physics. The classics didn't become obsolete; they became the lens.
The Shelf
Patterns of Enterprise Application Architecture
The session-state and gateway patterns reappear verbatim in agent memory and tool-boundary design.
Design Patterns
Strategy and Chain of Responsibility are the skeleton of every tool-routing and fallback system in production agents today.
Domain-Driven Design
Bounded contexts are now the natural unit of agent specialization — the ubiquitous language problem is just harder when one speaker is a model.
Enterprise Integration Patterns
Message channels, routers, and dead-letter queues describe multi-agent orchestration more precisely than any post-2020 framework.
Clean Architecture
The dependency rule — point inward toward policy, never toward mechanism — is the reason swapping an LLM provider should touch exactly one adapter.
Working Effectively with Legacy Code
Seams and characterization tests are how you wrap an opaque LLM call to make it testable without changing its behavior.
Continuous Delivery
The deployment pipeline's fast-feedback loop is now the training loop — the insight that feedback latency determines quality hasn't changed.
Agentic Era Series
These readings inform an ongoing essay series where I work through what the classics actually say about the problems showing up in agentic systems — not by analogy, but by direct application. The series is published at shelf.elizaga.dev.