Patterns of Enterprise Application Architecture
by Martin Fowler
Dated examples, durable vocabulary — still the catalog I reach for when naming a layer.
- Status
- Read · February 2022
- Bought
- February 14, 2022
- For
- Backend & platform engineers · Anyone designing a domain or persistence layer · Architects who argue about layering
Where it earned its place
The one-paragraph verdict
This is the book that put names to things I’d been building badly without them — Unit of Work, Data Mapper, Identity Map, and the Domain Model vs. Transaction Script split that every layered app eventually has to settle. The catalog format holds up: each pattern has a clear “when to use it” and an honest trade-off section, which is more than most pattern books manage. The cost is age. The examples are early-2000s Java and C#, some patterns (looking at you, anonymous distributed-object remoting advice) read as cautionary tales now, and the prose is uneven — a few entries are crisp, others bury the idea under setup. I keep it for the vocabulary and the decision framing, not the listings.
Who should read it
Backend and platform engineers who design persistence or domain layers, and anyone who’s been in the “should this be a service or an entity” argument and lost. Skip it if you want copy-paste modern code or a tutorial — it’s a reference catalog, and it assumes you already feel the pain it’s naming.
Where it earned its place
The trade-off framing here is what I lean on when reliability patterns get fuzzy. Fowler’s discipline of pairing each pattern with its failure mode shaped how I wrote up the Outbox messaging reliability approach — naming the consistency guarantee, then the cost. Same with Caching & invalidation: the book’s Identity Map and stale-read discussion is the ancestor of how I reason about invalidation today.
Skip it if…
You want current code or you’ve already internalized the vocabulary elsewhere. The ideas have diffused into every framework since; if you don’t need the canonical source, a blog summary covers most of it.
[Patterns of Enterprise Application Architecture — Goodreads]