Model Online / On-Site
Duration
Modules 5 modules

Course Objective & Scope

In complex domains, software becomes hard to change when the language of domain experts drifts apart from the structure of the code. Domain-Driven Design (DDD) provides a cohesive discipline both for drawing module/service boundaries (strategic design) and for enforcing business invariants in code (tactical design).

The course covers domain discovery with Event Storming, distinguishing Core, Supporting and Generic subdomains, Bounded Contexts and Context Maps, Entities, Value Objects, Aggregate design rules, Domain Events, Domain Services and Repositories. Participants take a real business problem from their organisation, model it step by step and translate it into a clean code skeleton.

Who Should Attend?

  • Senior backend developers building products with rich, complex business rules
  • Software and solution architects defining module and microservice boundaries
  • Technical product managers and systems analysts modelling domains alongside engineering teams
  • Prerequisite: object-oriented programming and enterprise application development experience

Key Takeaways

  • Map business flows and bottlenecks in a shared Ubiquitous Language using Event Storming
  • Distinguish Core, Supporting and Generic subdomains to focus engineering effort where it matters
  • Design Bounded Context boundaries and inter-context relationships (ACL, OHS, Conformist)
  • Replace anemic models with small, invariant-protecting Aggregates
  • Coordinate in-context and cross-context side effects cleanly with Domain Events

Curriculum

Strategic DDD: Subdomain Analysis and Ubiquitous Language
  • When DDD pays off and when simple CRUD is enough
  • Distinguishing Core, Supporting and Generic subdomains and investment strategy
  • Building a Ubiquitous Language shared by domain experts and developers
Event Storming and Discovering Bounded Contexts
  • Running Big Picture and Process Modeling Event Storming workshops
  • Identifying commands, events, policies, read models and concept collisions
  • Deriving Bounded Contexts from pivotal events and linguistic boundaries
Context Mapping and Cross-Context Integration
  • Upstream/downstream patterns: Customer-Supplier, Conformist, Shared Kernel
  • Anti-Corruption Layer (ACL) and Open Host Service / Published Language
  • Aligning Bounded Contexts with modular monoliths and microservices
Tactical DDD: Entities, Value Objects and Aggregates
  • Anemic vs Rich Domain Models and immutable Value Objects
  • Aggregate Roots, transaction boundaries and invariant enforcement
  • Designing small aggregates, referencing by ID and optimistic concurrency
Domain Events, Domain Services and Architectural Integration
  • Responsibilities of Domain Events, Application Services, Domain Services and Repositories
  • Isolating the domain layer from ORM concerns inside Hexagonal / Clean Architecture
  • End-to-end context map and aggregate coding workshop on an organisational case

Other Courses in This Category

  • Inter-Service Communication with gRPC and Protocol Buffers

    Protocol Buffers (proto3) schema design, HTTP/2 unary and streaming RPC models, schema governance with Buf, deadline/cancellation propagation, load balancing and mTLS security — for teams building low-latency inter-service communication.

    Web Development – Backend Corporate
    Live Course
    5 modules
  • Data Structures and Algorithms for Software Engineers

    Big-O time and memory complexity, array/hash table/tree/graph/heap data structures, searching and sorting, dynamic programming and cache-friendly design — for backend engineers processing high-volume data without bottlenecks.

    Web Development – Backend Corporate
    Live Course
    5 modules
  • Modern Web and API Development with PHP 8 and Laravel

    Modern PHP 8.x type system and OO features, Composer/PSR standards, MVC and REST API development with Laravel (or Symfony), Eloquent ORM, queues, security and Pest/PHPUnit testing — bringing PHP teams up to modern engineering standards.

    Web Development – Backend Corporate
    Live Course
    5 modules
  • Java and Spring Boot Backend Development

    Build REST APIs with Spring Boot 3, data access with Spring Data JPA, authentication with Spring Security and tests with Testcontainers — a production-ready service skeleton for Java backend developers.

    Web Development – Backend Corporate
    Live Course
    6 modules
  • .NET and ASP.NET Core Web API Development

    ASP.NET Core Web API and Minimal APIs, Entity Framework Core, dependency injection, middleware and authentication — for teams building maintainable, testable backend services on .NET 8/9.

    Web Development – Backend Corporate
    Live Course
    5 modules
  • Node.js and NestJS Backend Development

    Modular backends with TypeScript and NestJS: controllers, providers, dependency injection, data access with Prisma/TypeORM, guards and pipes, testing with Jest — a scalable service structure for Node.js teams.

    Web Development – Backend Corporate
    Live Course
    5 modules

Get in touch