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
- Governing principles and operational motivations for implementing DDD
- Establishing a ubiquitous language and fostering collaboration with subject matter experts
- Classification of core, supporting, and generic subdomains for governance purposes
Strategic Design and Bounded Contexts
- Definition of bounded contexts and the assignment of specific responsibilities
- Context mapping methodologies and integration patterns for system boundaries
- Alignment of team structures, organizational boundaries, and data ownership models
Tactical Patterns — Building Blocks of the Domain Model
- Entity definitions and strategies for identity management
- Value object implementation and enforcement of immutability
- Aggregate structures and the delineation of transaction boundaries
Domain Services, Repositories, and Factories
- Distinguishing between domain services and application services
- Repository design patterns and persistence architecture considerations
- Factory application for the creation of complex domain objects
Modeling Complex Behavior and Invariants
- Design of system invariants and the enforcement of business regulations
- Event-driven modeling methodologies and the use of domain events
- Consistency models, including eventual consistency and saga patterns
Integrating DDD with Architecture and Engineering Practices
- Alignment of DDD principles with microservices and modular monolith architectures
- API design, anti-corruption layers, and strategic integration approaches
- Verification of domain logic through unit, integration, and contract testing
Adopting DDD in Teams and Organizations
- Facilitation of domain discovery workshops and Event Storming sessions
- Development and governance of a ubiquitous language across organizational units
- Assessment of implementation success and iterative refinement of the domain model
Summary and Next Steps
Requirements
- Proficient programming experience in object-oriented languages
- Comprehensive understanding of software architecture principles
- Demonstrated familiarity with Agile development practices
Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples