Skip to content

Domain Centric Architectures

Examples are Onion, Hexagonal and Clean architecture.

Domain-centric (or domain-driven) architectures place the business domain - its concepts, rules, and language - at the core of the software design. Rather than starting from technical layers (UI, database, etc.), development revolves around domain models that capture the essential business logic.

Key Ideas:

  • Domain as the Core: The domain model is the "source of truth"” and all other layers (UI, persistence, infrastructure) serve it.
  • Ubiquitous Language: Developers and domain experts share a consistent vocabulary embedded in the model itself.
  • Bounded Contexts: Complex domains are divided into smaller, coherent areas, each with its own model and rules.
  • Layered Design: Often follows a structure like Domain → Application → Infrastructure → Interface or similar.
  • Strategic Integration: Context maps define how different bounded contexts interact - through APIs, events, or shared kernels.