Introduction to Domain Driven Design

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

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

Solicitar información






GRUPO TRENTIA como responsable del tratamiento tratará tus datos con la finalidad de dar respuesta a tu consulta o petición. Puedes acceder, rectificar y suprimir tus datos, así como ejercer otros derechos consultando la información adicional y detallada sobre protección de datos en nuestra Política de Privacidad.

Nos gustaría que nos prestaras tu consentimiento para: