Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction to Domain-Driven Design
- Underlying principles and the rationale for DDD
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Establishing bounded contexts and defining their scope and responsibilities
- Context mapping strategies and integration patterns
Tactical Patterns — Core Components of the Domain Model
- Entities and the management of identity
- Value objects and the principle of immutability
- Aggregates and defining transaction boundaries
Domain Services, Repositories, and Factories
- Determining when to utilize domain services versus application services
- Repository patterns and considerations for persistence
- Factory patterns for managing complex object instantiation
Modeling Complex Behaviors and Invariants
- Designing invariants and enforcing business rules
- Consistency models: understanding eventual consistency and sagas
Integrating DDD with Architectural and Engineering Practices
- Aligning DDD strategies with microservices and modular monolith architectures
- API design, anti-corruption layers, and integration approaches
- Testing domain logic through unit, integration, and contract tests
Adopting DDD in Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions
- Building and maintaining a ubiquitous language across distributed teams
- Measuring outcomes and refining the domain model iteratively
Summary and Future Directions
Requirements
- Proficient experience in object-oriented programming languages
- Solid grasp of software architecture fundamentals
- Working knowledge of Agile development methodologies
Target Audience
- Senior developers
- Software architects
- Technical leads
21 Hours
Testimonials (1)
That we could you real life examples