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
- Core principles and the rationale behind DDD
- The role of ubiquitous language and effective collaboration with domain experts
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Establishing bounded contexts and defining their specific responsibilities
- Utilizing context mapping and standard integration patterns
- Addressing team structures, organizational boundaries, and data ownership issues
Tactical Patterns — The Building Blocks of the Domain Model
- Managing entity identity
- Leveraging value objects and ensuring immutability
- Defining aggregates and their transaction boundaries
Domain Services, Repositories, and Factories
- Determining when to employ domain services versus application services
- Exploring repository patterns and associated persistence considerations
- Using factory patterns to manage the creation of complex objects
Modeling Complex Behavior and Invariants
- Designing invariants and enforcing critical business rules
- Applying event-driven modeling and handling domain events
- Implementing consistency models, including eventual consistency and sagas
Integrating DDD with Architecture and Engineering Practices
- Aligning DDD strategies with microservices and modular monolith architectures
- Focusing on API design, anti-corruption layers, and integration strategies
- Testing domain logic through unit tests, integration tests, and contract tests
Adopting DDD in Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions
- Establishing and maintaining a ubiquitous language across different teams
- Measuring success metrics and continuously iterating on the domain model
Summary and Next Steps
Requirements
- Solid experience with object-oriented programming languages
- A solid grasp of software architecture principles
- Proficiency in Agile development methodologies
Intended Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples