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 driving motivation behind DDD
- The role of ubiquitous language in fostering collaboration with domain experts
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Establishing bounded contexts and defining their specific responsibilities
- Developing context maps and selecting appropriate integration patterns
- Managing organizational boundaries, team structures, and data ownership
Tactical Patterns — Core Components of the Domain Model
- Managing entities and their identity
- Leveraging value objects and the principle of immutability
- Structuring aggregates and defining transaction boundaries
Domain Services, Repositories, and Factories
- Distinguishing when to use domain services versus application services
- Applying repository patterns and addressing persistence concerns
- Utilizing factory patterns for the creation of complex objects
Modeling Complex Behavior and Invariants
- Designing invariants and rigorously enforcing business rules
- Implementing event-driven modeling and handling domain events
- Understanding consistency models, including eventual consistency and sagas
Integrating DDD with Architecture and Engineering Practices
- Aligning DDD strategies with microservices and modular monolith architectures
- Optimizing API design, anti-corruption layers, and integration strategies
- Testing domain logic through unit, integration, and contract tests
Adopting DDD in Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions
- Developing and maintaining a ubiquitous language across distributed teams
- Measuring success metrics and continuously iterating on the domain model
Summary and Future Directions
Requirements
- Proficiency in object-oriented programming languages
- Solid 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