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.
Course Outline
Introduction to Domain-Driven Design
- Core principles and the motivations behind DDD
- Establishing a ubiquitous language and collaborating with domain experts
- Distinguishing between core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Defining bounded contexts and their specific responsibilities
- Context mapping and integration patterns
- Managing organizational boundaries, teams, and data ownership
Tactical Patterns — Key Building Blocks of the Domain Model
- Entities and identity management
- Value objects and immutability
- Aggregates and transaction boundaries
Domain Services, Repositories, and Factories
- When to utilize domain services versus application services
- Repository patterns and considerations for persistence
- Factory patterns for managing complex object creation
Modeling Complex Behavior and Invariants
- Designing invariants and enforcing business rules
- Event-driven modeling and handling domain events
- Consistency models: eventual consistency and sagas
Integrating DDD with Architecture and Engineering Practices
- Aligning DDD with microservices and modular monolith architectures
- API design, anti-corruption layers, and integration strategies
- Testing domain logic: unit tests, integration tests, and contract tests
Adopting DDD in Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions
- Creating and maintaining a ubiquitous language across teams
- Measuring success and iterating on the domain model
Summary and Next Steps
Requirements
- Proficient programming experience in object-oriented languages
- Solid understanding of software architecture principles
- Familiarity with Agile development practices
Audience
- Senior developers
- Software architects
- Technical leads
21 Hours
Testimonials (1)
That we could you real life examples