Get in Touch
 Duration 21 hours

Course Outline

Foundations of Domain-Driven Design

  • The underlying principles and rationale for adopting DDD
  • Establishing a ubiquitous language and collaborating effectively with domain experts
  • Identifying core, supporting, and generic subdomains

Strategic Design and Managing Bounded Contexts

  • Defining the scope and responsibilities of bounded contexts
  • Utilizing context mapping and integration patterns
  • Navigating team structures, organizational boundaries, and data ownership issues

Tactical Patterns — The Foundation of the Domain Model

  • Managing entity identity and behavior
  • Leveraging value objects and ensuring immutability
  • Defining aggregates and establishing transaction boundaries

Implementing Domain Services, Repositories, and Factories

  • Determining when to use domain services versus application services
  • Applying repository patterns and considering persistence strategies
  • Using factory patterns for the creation of complex objects

Modeling Complex Behaviors and Enforcing Invariants

  • Designing invariants to uphold strict business rules
  • Employing event-driven modeling and domain events
  • Applying consistency models, including eventual consistency and sagas

Aligning DDD with Architecture and Engineering Standards

  • Aligning DDD structures with microservices and modular monoliths
  • Designing APIs, implementing anti-corruption layers, and planning integration strategies
  • Testing domain logic through unit tests, integration tests, and contract tests

Implementing DDD Across Teams and Organizations

  • Conducting domain discovery workshops and Event Storming sessions
  • Building and maintaining a consistent ubiquitous language across teams
  • Tracking success metrics and iteratively refining the domain model

Conclusion and Future Directions

Requirements

  • Proficient experience in object-oriented programming languages
  • Solid grasp of software architecture fundamentals
  • Working knowledge of Agile development methodologies

Target Audience

  • Senior developers
  • Software architects
  • Technical leads

Testimonials (1)

Related Categories