Современные веб-приложения уже не получается разрабатывать в рамках MVC(Model View Controller) архитектуры. Все больше и больше бизнес правил, высокие нагрузки и тонны кода. Все это превращается в вязкое болото, вносить изменения становится всё дороже. Ресурсов не хватает, растет стоимость квалифицированных разработчиков. На помощь приходит Domain Driven Design(DDD) и луковая архитектура(onion architecture). Domain Driven Design Domain Driven Design переводится как Предметно-ориентированное проектирование. Предметная область это - то, что делает организация, как она это делает. Это бизнес-логика. Если кратко, то DDD - набор способов выделения моделей предметных областей. Основой является Единый язык(ubiquitous language), это мощный инструмент, который позволяет разработчикам общаться с бизнесом на одном языке, не возникает путаницы. Бизнес говорит "Task", разработчик в коде пишет "TaskModel". Бизнес говорит "Bill Request", разработчик пишет "BillRequestHandler". Разработчик говорит