The onion architecture is not as well known as the 3-tier software architecture but is gaining a lot of attention during the microservices era. It structures your software so that it is easy to change technologies without impacting business logic. Coupled with Domain Driven Design (DDD) principles it offers a powerful way to build a clean and maintainable software architecture.
The main premise of the onion architecture is that it controls coupling. The fundamental rule is that all code can depend on layers that are more central, but it cannot depend on layers further out. The onion architecture is biased toward object-oriented programming. This kind of software architecture is more and more important because technologies change much faster than business rules. In this talk you will get an overview of the main concepts of an onion architecture. You will also learn how to ensure the onion architecture principles are followed by the developers using stereotypes and static code analysis tools. The talk provides also an example demonstrating how easy it is to switch technologies with a clean onion architecture in place.