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.
Duration 21 hours
Course Outline
Introduction to Domain-Driven Design
- Foundational principles and the rationale behind DDD
- Establishing a ubiquitous language and collaborating with domain experts
- Identifying core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Defining bounded contexts and their specific responsibilities
- Developing context maps and integration strategies
- Aligning technical boundaries with team structures and data ownership
Tactical Patterns — The Building Blocks of the Domain Model
- Entities and managing identity
- Value objects and the importance of immutability
- Aggregates and defining transaction boundaries
Domain Services, Repositories, and Factories
- Distinguishing between domain services and application services
- Applying repository patterns and addressing persistence requirements
- Using factory patterns for complex object instantiation
Modeling Complex Behavior and Invariants
- Designing invariants to enforce strict business rules
- Leveraging event-driven modeling and domain events
- Consistency models, including eventual consistency and sagas
Integrating DDD with Architecture and Engineering Practices
- Aligning DDD 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
- Maintaining a ubiquitous language across organizational boundaries
- Evaluating success metrics and iterating on the domain model
Summary and Next Steps
Requirements
- Proficiency in object-oriented programming languages
- Comprehensive understanding of software architecture principles
- Experience with Agile development methodologies
Target Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples