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
Foundations of Domain-Driven Design
- The underlying principles and business motivations for DDD
- Cultivating a ubiquitous language and effective collaboration with domain experts
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Managing Bounded Contexts
- Establishing bounded contexts and clarifying their specific responsibilities
- Developing context maps and selecting appropriate integration patterns
- Navigating team structures, organizational boundaries, and data ownership models
Tactical Patterns: The Foundation of the Domain Model
- Managing entities and their identity
- Utilizing value objects to ensure immutability
- Defining aggregates and establishing transaction boundaries
Implementing Domain Services, Repositories, and Factories
- Determining when to apply domain services versus application services
- Designing repository patterns and addressing persistence strategies
- Employing factory patterns to manage complex object creation
Modeling Complex Behaviors and Ensuring Invariants
- Architecting invariants and strictly enforcing business rules
- Implementing event-driven modeling and leveraging domain events
- Understanding consistency models, including eventual consistency and saga patterns
Aligning DDD with Architectural and Engineering Best Practices
- Harmonizing DDD with microservices and modular monolith architectures
- Designing APIs, implementing anti-corruption layers, and planning integration strategies
- Validating domain logic through unit, integration, and contract testing
Organizing DDD Adoption Across Teams and Organizations
- Facilitating domain discovery workshops and conducting Event Storming sessions
- Establishing and maintaining a consistent ubiquitous language across all teams
- Evaluating outcomes and continuously refining the domain model
Wrap-Up and Path Forward
Requirements
- Proficiency in object-oriented programming languages
- A solid grasp of software architecture fundamentals
- Working knowledge of Agile development methodologies
Target Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples