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 fostering collaboration with domain experts.
- Differentiating between core, supporting, and generic subdomains.
Strategic Design and Bounded Contexts
- Defining bounded contexts and assigning their respective responsibilities.
- Utilizing context mapping and various integration patterns.
- Managing team dynamics, organizational boundaries, and data ownership.
Tactical Patterns — Building Blocks of the Domain Model
- Managing entities and their identity.
- Implementing value objects and ensuring immutability.
- Defining aggregates and establishing transaction boundaries.
Domain Services, Repositories, and Factories
- Determining when to employ domain services versus application services.
- Exploring repository patterns and persistence strategies.
- Utilizing factory patterns for the creation of complex objects.
Modeling Complex Behavior and Invariants
- Designing invariants to enforce critical business rules.
- Employing event-driven modeling and domain events.
- Implementing consistency models, including eventual consistency and sagas.
Integrating DDD with Architecture and Engineering Practices
- Aligning DDD with microservices and modular monolith architectures.
- Refining 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.
- Establishing and maintaining a ubiquitous language across teams.
- Evaluating success metrics and iterating on the domain model.
Summary and Next Steps
Requirements
- Proficient programming experience in object-oriented languages.
- A solid understanding of software architecture principles.
- Working knowledge of Agile development methodologies.
Target Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples