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
Fundamentals of Domain-Driven Design
- Core principles and the driving motivations for DDD
- Developing a ubiquitous language and collaborating effectively with domain experts
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Defining Bounded Contexts
- Establishing bounded contexts and defining their respective responsibilities
- Utilizing context mapping and effective integration patterns
- Addressing team structures, organizational boundaries, and data ownership issues
Tactical Patterns — Core Components of the Domain Model
- Entities and managing identity
- Value objects and the principle of immutability
- Aggregates and defining transaction boundaries
Domain Services, Repositories, and Factory Patterns
- Determining when to utilize domain services versus application services
- Repository patterns and key persistence considerations
- Applying factory patterns for complex object creation scenarios
Modeling Complex Behaviors and Invariants
- Designing invariants and strictly enforcing business rules
- Event-driven modeling techniques and domain events
- Consistency models, including eventual consistency and sagas
Aligning DDD with Architecture and Engineering Standards
- Aligning DDD strategies with microservices and modular monolith architectures
- API design, implementing anti-corruption layers, and integration strategies
- Testing domain logic through unit tests, integration tests, and contract tests
Implementing DDD in Teams and Organizational Structures
- Conducting domain discovery workshops and Event Storming sessions
- Building and managing a consistent ubiquitous language across teams
- Measuring success metrics and iterating on the domain model
Summary and Future Directions
Requirements
- Proficient programming experience in object-oriented languages
- Comprehensive understanding of software architecture principles
- Working familiarity with Agile development methodologies
Target Audience
- Senior developers
- Software architects
- Technical leads
Testimonials (1)
That we could you real life examples