This document discusses Onion Architecture, its origins and benefits. It describes Onion Architecture as allowing the deferral of critical design decisions. The core focuses on domain objects and business rules while external layers deal with interfaces, frameworks, databases etc. This allows for independence of components, high cohesion, low coupling, and improved testability and maintainability. Examples of implementing Onion Architecture in code are provided as well as references for further information.