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
Foundations of Domain-Driven Design
- Core principles and the driving motivations behind DDD
- Establishing ubiquitous language and fostering collaboration with domain experts
- Differentiating between core, supporting, and generic subdomains
Strategic Design and Bounded Contexts
- Defining bounded contexts and delineating their specific responsibilities
- Developing context maps and selecting appropriate integration patterns
- Navigating team structures, organizational boundaries, and data ownership
Tactical Patterns — The Building Blocks of the Domain Model
- Entities and strategies for identity management
- Value objects and the principle of immutability
- Aggregates and defining transaction boundaries
Domain Services, Repositories, and Factories
- Distinguishing when to apply domain services versus application services
- Repository patterns and considerations for data persistence
- Utilizing Factory patterns for the creation of complex objects
Modeling Complex Behavior and Business Invariants
- Designing invariants and enforcing critical business rules
- Implementing event-driven modeling and domain events
- Consistency models: understanding eventual consistency and sagas
Aligning DDD with Architectural and Engineering Practices
- Harmonizing DDD with microservices and modular monolith architectures
- API design, implementing anti-corruption layers, and integration strategies
- Testing domain logic through unit, integration, and contract tests
Adopting DDD Across Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions
- Building and managing a consistent ubiquitous language across the organization
- Evaluating success metrics and continuously iterating on the domain model
Key Takeaways and Future Directions
Requirements
- Proficient experience with object-oriented programming languages
- Solid grasp of software architecture principles
- Working knowledge of Agile development methodologies
Target Audience
- Senior software developers
- Software architects
- Technical leads and engineering managers
Testimonials (1)
That we could you real life examples