This document provides an overview of patterns for enterprise application architecture. It discusses layering as a common technique for breaking apart complex software systems into layers like presentation, domain, and data layers. It describes different kinds of enterprise applications and considerations for performance. It also examines patterns for organizing domain logic, mapping to relational databases, and handling common behavioral issues like change tracking, object loading, and identity management.