Get in Touch

Course Outline

Fundamentals of Domain-Driven Design

  • Core principles and the rationale behind DDD.
  • Establishing a ubiquitous language and collaborating effectively with domain experts.
  • Differentiating between core, supporting, and generic subdomains.

Strategic Design and Managing Bounded Contexts

  • Defining bounded contexts and clarifying their respective responsibilities.
  • Utilizing context mapping and various integration patterns.
  • Addressing team structures, organizational boundaries, and data ownership issues.

Tactical Patterns — The Structural Elements of the Domain Model

  • Managing entities and their identity.
  • Implementing value objects and ensuring immutability.
  • Structuring aggregates and defining transaction boundaries.

Utilizing Domain Services, Repositories, and Factories

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

Modeling Complex Behaviors and Business Invariants

  • Designing invariants and enforcing critical business rules.
  • Implementing event-driven modeling and domain events.
  • Understanding consistency models, including eventual consistency and sagas.

Aligning DDD with Architectural and Engineering Standards

  • Harmonizing DDD with microservices and modular monolith architectures.
  • Designing APIs, implementing anti-corruption layers, and developing 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.
  • Creating and sustaining a shared ubiquitous language across multiple teams.
  • Measuring effectiveness and continuously refining the domain model.

Recap and Future Directions

Requirements

  • Proficient programming experience in object-oriented languages.
  • Solid grasp of software architecture principles.
  • Working familiarity with Agile development methodologies.

Target Audience

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

Testimonials (1)

Upcoming Courses

Related Categories