Get in Touch

Course Outline

Introduction to Domain-Driven Design

  • Core principles and the drivers behind adopting DDD.
  • Building a ubiquitous language through collaboration with domain experts.
  • Differentiating between core, supporting, and generic subdomains.

Strategic Design and Bounded Contexts

  • Defining the scope and responsibilities of bounded contexts.
  • Mapping contexts and selecting appropriate integration patterns.
  • Managing organizational boundaries, team structures, and data ownership.

Tactical Patterns — Constructing the Domain Model

  • Understanding entities and managing their identity.
  • Utilizing value objects and enforcing immutability.
  • Structuring aggregates to define transaction boundaries.

Domain Services, Repositories, and Factories

  • Determining when to employ domain services versus application services.
  • Applying repository patterns while considering persistence strategies.
  • Using factory patterns to handle complex object creation logic.

Modeling Complex Behavior and Invariants

  • Establishing invariants to strictly enforce business rules.
  • Implementing event-driven modeling and handling domain events.
  • Exploring consistency models, including eventual consistency and sagas.

Aligning DDD with Architecture and Engineering

  • Harmonizing DDD with microservices and modular monolith architectures.
  • Designing APIs, implementing anti-corruption layers, and planning integrations.
  • Validating domain logic through unit, integration, and contract tests.

Implementing DDD Across Teams and Organizations

  • Facilitating domain discovery workshops and Event Storming sessions.
  • Establishing and maintaining a shared ubiquitous language across teams.
  • Evaluating outcomes and continuously refining the domain model.

Conclusion and Future Directions

Requirements

  • Proficiency in object-oriented programming languages.
  • A solid grasp of fundamental software architecture principles.
  • Working familiarity with Agile development methodologies.

Target Audience

  • Senior software developers
  • Software architects
  • Technical leads
 21 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories