WA2594

Introduction to Domain Driven Design Training

This course is an intro to Domain Driven Design
Course Details

Duration

2 days

Skills Gained

  • Domain Driven Design concepts
  • Strategic domain driven design
  • Domain Driven Design Building Blocks
  • Application Architecture under Domain Driven Design
Course Outline
  • Domain Driven Design Concepts
    • Domain Driven Design - What is it?
    • Domain Driven Design - What it's Not
    • Complex Problem Space
    • Design Effort
    • Division of Labor
    • Tactical Design
    • Strategic Design
    • Separate Languages
    • Ubiquitous Language 1/2
    • Ubiquitous Language 2/2
    • Capturing the Ubiquitous Language 1/3
    • Capturing the Ubiquitous Language 2/3
    • Capturing the Ubiquitous Language 3/3
    • Domain
    • Domain Examples
    • Types of Domains
    • Sub-Domains
    • Context
    • Model
    • Domain Model Example - Bookstore
    • Bookstore Domain Model
    • Domain Model Example - Custom Cabinet Business
  • Strategic Domain Driven Design
    • Strategic Design
    • The Domain Model
    • Creating the Model
    • Separate Concerns
    • Domains vs. Contexts
    • Bounded Contexts
    • Bounded Contexts Stand Alone
    • Analyzing Overlap in Bounded Contexts
    • Resolving Overlaps with Contexts Mapping
    • Mapping Types
    • Partnership Mapping
    • Shared Kernel
    • Cross Cutting Concerns
    • Customer-Supplier
    • Conformist
    • Anti corruption-layer
    • Open Host Service
    • Separate Ways
    • Big Ball of Mud (BBOM)
    • Integration via Database
  • Domain Driven Design Building Blocks
    • Building Blocks
    • Entity Objects
    • Value Object
    • Value Object - Examples
    • Aggregate 1/2
    • Aggregate 2/2
    • An Example Aggregate 1/2
    • An Example Aggregate 2/2
    • Module
    • A Module Example
    • Levels of Granularity
    • Domain Event 1/2
    • Domain Event 2/2
    • Domain Event Advantages
    • Services
    • Service Examples
    • Repository
    • Generic Repository Interface
    • Domain Repository Interface
    • Factory
    • Factory Example
  • Application Architecture Under Domain Driven Design
    • Overall Architecture
    • Interface/Presentation Layer
    • Application Layer
    • Domain Layer
    • Domain Layer - In Practice
    • Infrastructure (Services) Layer
    • Technologies to use with Domain Driven Design
    • Dependency Injection (DI)
    • Aspect Oriented Programming (AOP)
    • Aspect Oriented Programming (AOP)
    • Java Persistence API (JPA)
  • Microservices
    • What is a "Microservice"?
    • One Helpful Analogy
    • SOA - Microservices Relationship
    • ESB - Microservices Relationship
    • Traditional Monolithic Designs and Their Role
    • Disadvantages of Monoliths
    • Moving from a Legacy Monolith
    • When Moving from a Legacy Monolith
    • The Driving Forces Behind Microservices
    • How Can Microservices Help You?
    • The Microservices Architecture
    • Utility Microservices at AWS
    • Microservices Inter-connectivity
    • The Data Exchange Interoperability Consideration
    • Managing Microservices
    • Implementing Microservices
    • Embedding Databases in Java
    • Microservice-Oriented Application Frameworks and Platforms
  • Hexagonal Architecture and Microservices
    • A Different View of Application Architecture
    • Traditional Layers for Traditional User Interface
    • Layers with DDD
    • Modern Interaction Methods
    • Modern Data Storage
    • Hexagonal Architecture – Ports and Adapters
    • DDD in Hexagonal Architecture
    • The Adapter Pattern
    • The Adapter Pattern Structure
    • Adapter Pattern Behavior
    • Entities, Values, and Aggregates
    • Repositories – Overview
    • Collection Oriented Repositories
    • Persistence Oriented Repositories
    • Domain Services
    • Domain Events
    • Discovering Events
    • Modeling Events
    • Events and Bounded Contexts
    • Publishing Domain Events
    • Storing Domain Events
    • Forwarding Domain Events
    • Integration Between Bounded Contexts
    • Mapping to Microservices
    • Communication Styles for Microservices
    • User Interfaces – Crossing the System Boundary
    • UI Communication Strategies
    • Integration Between Bounded Contexts Revisited – Options
    • Integration Via RESTful Services
    • Integration Via Binary Formats
    • Integration Via Messaging
  • Lab Exercises
    • Lab 1. Domain Driven Design Concepts
    • Lab 2. Strategic Domain Driven Design
    • Lab 3. Domain Driven Design Project
Upcoming Course Dates
USD $1,460
Online Virtual Class
Scheduled
Date: May 27 - 28, 2024
Time: 10 AM - 6 PM ET
USD $1,460
Online Virtual Class
Scheduled
Date: Jul 1 - 2, 2024
Time: 10 AM - 6 PM ET
USD $1,460
Online Virtual Class
Scheduled
Date: Aug 26 - 27, 2024
Time: 10 AM - 6 PM ET