Goodreads helps you keep track of books you want to read.
Start by marking “Patterns of Enterprise Application Architecture” as Want to Read:
Patterns of Enterprise Application Architecture
Enlarge cover
Rate this book
Clear rating
Open Preview

Patterns of Enterprise Application Architecture

(Martin Fowler Signature Book)

4.11  ·  Rating details ·  3,479 ratings  ·  137 reviews
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterprise applications often oc ...more
Hardcover, 533 pages
Published November 5th 2002 by Addison-Wesley Professional
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Patterns of Enterprise Application Architecture, please sign up.

Be the first to ask a question about Patterns of Enterprise Application Architecture

Community Reviews

Showing 1-30
Average rating 4.11  · 
Rating details
 ·  3,479 ratings  ·  137 reviews

More filters
Sort order
Start your review of Patterns of Enterprise Application Architecture
Jul 26, 2013 rated it it was ok
In comparison to other patterns books that I have read, Patterns of Enterprise Application Architecture is one of the weaker ones. I'm afraid that many of the patterns described are now out of date or anti-patterns. The book is now 12 years old and the technology field is a different place.

Many of the patterns in the book focus on dealing with relational databases or non-distributed systems. Relational databases still play a large role in many enterprise applications, but this material either pr
Nguyen Huu Anh Vu
Apr 13, 2018 rated it really liked it
Shelves: computer-science
As with other books by Martin Fowler, the writing style is unstable. Some idea are well-explained, some are in dire need for more explanation.
Even though some examples are out-dated (we now use JSON over XML), the patterns presented in this book can still be useful in modern project.
Must read for those who want to design architecture
Aug 02, 2014 rated it it was ok
I re-read this because back then, I only skimmed it, and I thought some of the content might still be relevant today. Unfortunately, this book has not aged very well. Most of the patterns are hardly useful at all in 2014, or even anti-patterns by now.
Feb 01, 2011 rated it it was amazing
I think this is a great book. Most developers should have it on hand as a reference. I say that in spite of the fact that I'm seriously annoyed by patterns fashionistas and Fowler fanatics.

This is not a collection of esoteric design patterns or capital-A architectures. This is a collection of tricks, schticks, and small-A architectures that just tend to show up repeatedly in the wild. Martin Fowler, with his perspective as an idea man and his position as a consultant and thought leader, has obse
Katrina Theodosopoulos
Apr 30, 2015 rated it really liked it
Shelves: computer
I had a hard time understanding the examples because I don't know C# or Java.

However, that's probably the only downfall I found to this book. Still being youngin' in the programming sphere, this book explained many concepts that you won't see explained in other places, and if they are, not nearly as well. I like how the book organizes the patterns, it makes them easier to find. The best way I found to read the book was looking up certain patterns I already knew or heard of, but wanted to learn
Oct 01, 2017 rated it liked it
This book will be more relevant for that ambitious architect who is willing to dedicate a lot of time to comprehensively brush through the basics of basic web design pattern. Since this book was written 15 years before and given that the information technology field is a rapidly changing one, the relevancy and newness is lost. However, I would still recommend it for those who want find the roots and sources of the existing design patterns especially those deal with the enterprises.

One more thin
Apr 28, 2008 rated it it was amazing
Shelves: technology
Another one for us techies...

First off, I don't think you can go wrong with Fowler. I know that many will argue with me on that statement, but at least he gets you thinking and defending the points on which you disagree.

This patterns book is a must have on your shelf as well. Great thing this hard back has a built in bookmark because it is heavily used. This isn't a great read from cover to cover, but it is a wonderful reference book. Anytime that I try to design a new architecture, this book co
Paolo Bizzarri
Still relevant to read
Leo Maslovs
Mar 05, 2016 rated it it was amazing
It's one of the best sw engineering books I've read recently.

What I liked the best? The ELI5 (explain like I'm 5) stuff. Yes, it's all known and battle-tested truths out there, most of it found (to my shame) independently, and oh boy, how much time & effort has burn out and flew into the pipe doing so. Still it's so refreshing to get some good and clear read on this ELI5 style; I feel like I'm finally up to the point to be able to explain database isolation levels to 7th grade student myself. I
Matteo Tomasulo
Jun 08, 2013 rated it liked it
Shelves: cs-meta
This book shows its time by now. A lot of this patterns are well implemented inside the most common frameworks or even provided as core language feature which allow you to solve that problem in clearer way.

But the main advantage of the PEAA I think is: terminology. Give the right name to the right things is one of the most common problem in software design specially in new formed teams without great experience.
And this book, even though its age, still helps in this.

After some time I noticed
Felipe Gonçalves Marques
Jan 08, 2021 rated it really liked it
A very good book in terms of listing problems/challenges and possible ways to solve them. I found the one regarding Session State Management, Concurrency Control Patterns (Optimistic Lock, Pessimistic Lock and Coarse Lock), and "Frontend" patterns were very insightful.

But, as expected from a book published in 2006, it focuses a lot in OO and Relational databases. But, some ideas are very useful outside of those domains.
Oct 21, 2017 rated it it was amazing
A bit dated, but still a very good read.
Although most modern frameworks already adopt most of these patterns, it's useful to internalize the motivations as well as the inner workings of each.
Also, as with any patterns book, it establishes a language that makes discussing architecture with peers easier; and it's pretty clear that the naming put forth here transcended.

Looking forward to reading Integration Patterns.
Jul 03, 2020 rated it it was amazing
Shelves: favorites, software
Very good book, it provides a lot of patterns and knowledge about some techniques that you may never implement by yourself, nonetheless this is helpful when using libraries.
Kendal Harland
Apr 02, 2017 rated it it was ok
This is a pretty dense book. The concepts are explained in very abstract fashion making them difficult to relate to real-world use cases. UML diagrams are used to model most of the patterns and are, in my opinion, an outdated method for modeling application structure (less detail oriented diagrams often suffice). The author's voice doesn't display heavily, either: paragraphs are dry and uninteresting with very little wit or humor. These are things I've come to expect from technical writing after ...more
Andrew Dalgleish
As programming books go, this one is overly boring, and is really meant as a reference. The patterns are important however, and many systems have been implemented with them in mind. The author is very big into Java and Enterprise Architecture and you'll be a bit lost if you're not in those spheres of thinking.
You pick it up when you have to implement something or understand a system that follows the patterns contained within. Each pattern is annotated with references to other patterns so its eas
Aug 31, 2013 rated it it was amazing
Although many of the described patterns are either deprecated or already implemented in most popular enterprise frameworks, it was still very thought-provoking and educational to read about the motivations for their use and ways to implement them - after all, every worthwhile computer science curriculum teaches us how to implement linked lists and a whole other range of data structures that already come out of the box with most languages. Similarly, after reading it cover to cover I tend to cons ...more
Trevor Price
Mar 10, 2016 rated it it was ok
This book certainly shows its age. Some patterns remain quite relevant, but in the year since this was published, IDEs and databases have improved dramatically, which renders some patterns totally useless.

And even if this were a more recent book, the format just doesn't lend itself to easy digestion. In fairness to this book, I can't think of a better way to present the material. But there just has to be a better way. Part of the problem is that the examples are based on 14-year-old tech at this
Augusto Oberziner
Nov 28, 2017 rated it really liked it
Worth reading, even being "old"

(Not so) Long Version

It covers some things in an "outdated" way like:
- Several patterns on the relational/OO mismatch are covered nowadays by JPA, ActiveRecord and friends, so we don't necessarily need to study them in depth;
- The patterns on Web Presentations which were mostly superseded by frontend frameworks;

However, most patterns are still valid, since the challenges of large enterprise systems (even with newer tech stacks / architectures) still have a lot
Jan 02, 2007 rated it it was amazing
This is the definitive reference on patterns in application development. The Gang of Four book is a classic reference on patterns, but the patterns there are lower level. And they are useful, but never had as much of an impact as this book. When reading this book, I immediately recognized many of the patterns and really value having a vocabulary to talk about application design decisions. This is a must read book for advanced application developers and architects.
Jan 24, 2020 rated it it was ok
Shelves: dnf
I tried reading this book, but should have read previous reviews before starting this book. The book is clearly outdated in terms of lots of concepts and patterns in it. Also the language is not fluid, and I really got bored reading the few pages I read from this book.

Stopped reading the book, as I did not want to spend my time learning and understanding something in a harder way.
Josh Readmore
Jan 28, 2009 rated it it was amazing
An extremely influential book - unfortunately, going Domain Model for all data access has turned out to be a monumental failure. But it was a good try - and all of the patterns in this book are common and legit.
Jul 22, 2008 rated it really liked it
This is a solid book. It wasn't as useful to me as I had hoped, but I'd still recommend it as a good resource. ...more
Christian Rondeau
This was my entry point in the software architecture field, which made me realise there's much more to software than code. ...more
André Gomes
Nov 22, 2011 rated it really liked it

A must read for software folks.
Richard Fabian
Jan 17, 2020 rated it really liked it
Shelves: patterns-books
Lots of advice of a practical nature. Less theory than many other patterns books. The advice is from long enough ago that in many cases, only the core values behind the advice are pertinent. But as long as you can see through to the reasoning, you can get a lot out of Martin Fowler's words. His style is rather laid back and self deprecating, which works, and reminds you that everyone was playing by ear in those days, and maybe we all still are now.
I did not thoroughly read all the patterns, they
Avraam Mavridis
Feb 26, 2021 rated it really liked it
Definitely a great book but on some parts it is clear that it is a bit "too old". The book is almost 20 years old, so it is not a surprise that some of the patterns Martin describes there are not so "real" nowdays, for example I cant imagine any service that is written the last 6-7years to make use of the Remote Facade pattern. Another thing that shows the age of the book is the use of XML as the main way of transporting data, again, I think JSON (and Protobuffers) have won this battle. Patterns ...more
Dec 13, 2017 rated it it was ok
Shelves: it
Disappointing. The book was written in times when SQL databases were an exciting innovation starting to dominate the market. As result many problems described are no longer faced by the majority of programmers, for many we know better solutions than those suggested. This makes the signal to noise ratio rather low. Some patters no longer need to be implemented, as they have become a basic functionality of popular frameworks - all you get is that you understand better why frameworks do some things ...more
Lassi Autio
Mar 20, 2018 rated it liked it
Book has a good catalog of various patterns. Most of the patterns are explained even too deeply to read when reading the whole book. My recommendation is to read beginnings of each pattern. And if you someday need that pattern then you can read the whole chapter about that pattern.
From some parts, book is maybe little outdated. For example, web presentation patterns have changed a lot since 2003.
The book contained some patterns that I was already familiar with but I just hadn't recognized them a
Sancho Panza
Jul 30, 2018 rated it it was amazing
A fantastic book, both from a historical and technical context. A required read for anyone working with a legacy system or building their own. The patterns mentioned (while not all completely relevant in 2018) can still resonate in many situations and can be applied to any architecture built today (from monolith to serverless).

At times, it's humorous reading Fowlers assumptions about system design and message passing, but one must put it in context of 2001.

I would recommend this book to any int
Eric Perazzo
Mar 11, 2019 rated it really liked it
The book is quite old (2002) but it's still relevant. I read the first part carefully and then took a quick look at the second part, where Fowler catalogs the patterns.

It's important when to use them, but the second part should be used as a reference whenever we feel some of them should be applied.

It's worth noting that most of the modern frameworks make use of some of the patterns described by the book (e.g., Symfony/Doctrine: Unit of Work, Domain Models with Data Mapper, Query Object, Front Co
« previous 1 3 4 5 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Clean Architecture
  • Building Microservices: Designing Fine-Grained Systems
  • Head First Design Patterns
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Pragmatic Programmer: From Journeyman to Master
  • The Mythical Man-Month: Essays on Software Engineering
  • Designing Data-Intensive Applications
  • Working Effectively with Legacy Code
  • Code Complete
  • Effective Java
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Test-Driven Development: By Example
  • Java Concurrency in Practice
  • Peopleware: Productive Projects and Teams
  • Introduction to Algorithms
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
Martin Fowler (b. 1963) is a software engineer, Chief Scientist at ThoughtWorks, and an outspoken advocate for best practices in enterprise software design, particularly in regard to agile software development methodologies, including extreme programming. ...more

Other books in the series

Martin Fowler Signature Book (1 - 10 of 11 books)
  • xUnit Test Patterns: Refactoring Test Code
  • Refactoring to Patterns
  • Refactoring HTML: Improving the Design of Existing Web Applications
  • Beyond Software Architecture: Creating and Sustaining Winning Solutions
  • Refactoring Databases: Evolutionary Database Design
  • Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
  • Domain-Specific Languages
  • Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  • Continuous Integration: Improving Software Quality and Reducing Risk
  • Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services

News & Interviews

What will you do when it's your turn to pick your book club's next read? Well, this is what you won't do: panic. Why not? Because we've dug...
111 likes · 22 comments
“First Law of Distributed Object Design: Don’t distribute your objects!” 0 likes
“Architectural refactoring is hard, and we’re still ignorant of its full costs, but it isn’t impossible. Here the best” 0 likes
More quotes…