Domain-Driven Design Training

Level

Intermediate

Duration

16h / 2 days

Date

Individually arranged

Price

Individually arranged

Domain-Driven Design Training

Domain-Driven Design (DDD) is an approach to system design that places strong emphasis on reflecting business processes and assumptions as accurately as possible in implementation. Objects and their relationships should mirror the business domain closely, and terminology should be consistent with business language. DDD provides tools, structures, and terminology that can be used in design decision-making. It is a set of concepts and techniques that support the design and implementation of business models.

Who is this training for?
  • logo infoshare Developers, designers, architects, business analysts, and product owners who wish to learn and practice designing complex domain models using Domain-Driven Design
  • logo infoshare Those who want to build up their theoretical knowledge and hone both strategic and tactical modeling skills through practical, real-world examples

What You Will Learn

  • You will understand how Domain-Driven Design helps in designing information systems
  • You will learn how to apply tactical pattern techniques within a Bounded Context
  • You will learn how to use strategic thinking when building an information system
  • You will understand the importance of Domain Events and how they can be used for integrating Bounded Contexts

Training Program

  • Introduction

    • What is a domain-driven approach?
    • Common problems encountered
    • When and how to apply Domain-Driven Design
  • Modeling Process

    • Pitfalls of Database-First approach and noun-based modeling
    • Using EventStorming in the design process
    • EventStorming Big Picture – discovering the language and preliminary context boundaries
    • EventStorming Process Level – modeling business processes and defining context boundaries
    • EventStorming Design Level – modeling aggregates and their boundaries
    • Tips & Tricks
  • EventStorming Session
  • Strategic Domain-Driven Design Patterns

    • Pattern catalog
    • Bounded Context
    • Methods for discovering domains, subdomains and Bounded Contexts
    • Ubiquitous Language
    • Discovering language: its role in communication and implementation
    • Context Map
    • Methods of integrating contexts
  • Tactical Domain-Driven Design Patterns

    • Value Object
    • Entity
    • Aggregate
    • Upholding invariants
    • Heuristics for aggregate modeling
    • Four rules for identifying consistency boundaries
    • Typical consequences of incorrect aggregate boundaries
    • Repository
    • Factory
    • Domain Service
    • Policy (including use of design patterns in modeling policies)
    • Specification
    • Event
    • Saga
    • Implementation considerations:

      • Persistence of aggregates (with separate model / using events)
      • Data validation
      • Involving infrastructure vs domain vs framework
      • Communication between modules (within monolith, microservices)
      • Testing
      • Translating the domain model into application architecture, integrating with frameworks
    • Related techniques:

      • Command Query Responsibility Segregation (CQRS)
      • Event Sourcing
  • Additional Topics

    • Four levels of model – large-scale structures
    • Capabilities
    • Operations
    • Policies
    • Decision Support
  • Good & Bad Practices

    • Review of typical modeling and implementation mistakes
    • Helpful heuristics for modeling
    • DDD vs DDD Lite
  • Q&A

Contact us

we will organize training for you tailored to your needs

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    The controller of your personal data is InfoShare Academy Sp. z o.o. with its registered office in Gdańsk, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742121. Personal data are processed in accordance with information clause.