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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Live Course
- 5 modules
Get in touch