DDD in an "onionshell"

Anastasiia Lysenko

13Chats

Scalable Distributed System

Onion Architecture

DDD with Onion = 

Domain Layer

"This layer is the heart of business software"

(Eric Evans)

DDD is definitely NOT about technology. DDD is all about the domain.

Application layer

  • Is responsible for the navigation between the UI screens in the bounded context as well as the interaction with application layers of other bounded contexts.

  • Can perform the basic (non business related) validation on the user input data before transmitting it to the other (lower) layers of the application.

  • Should not contain any business or domain related logic, but definitely should perform tasks from the UI requests via services.

Application layer

Infrastructure Layer

  • consists Shared libraries for Domain, Application, and UI layer

  • communicates with external systems, such as DB or search engine adapters

Presentation Layer

  • presenting information to the user and interpreting user commands

  • translate incoming requests to method calls for the application layer

  •  translate the return values to responses.

Full Picture

Shared Kernel

Anti Corruption Layer (ACL)

Partnership

The End

DDD in an "onionshell"

By Anastasia Lysenko

DDD in an "onionshell"

  • 26