modern software architecture-domain models, cqrs, and event sourcing - notes
TRANSCRIPT
Modern Software Architecture: Domain Models, CQRS, and Event Sourcing - Notes
Source: https://app.pluralsight.com
Ngo Nguyen Chinh
Ha Noi 2016
Table of Contents• DDD at a Glance• Discovering the Domain Architecture through
DDD• The DDD Layered Architecture• The "Domain Model" Supporting Architecture
• The CQRS Supporting Architecture• Event Sourcing• Designing Software Driven by the Domain
Part I – DDD at a Glance
Introduction
Introduction
DDD in History
DDD in History
DDD in History
DDD in History
DDD in History
DDD in History
DDD Today
DDD Today
DDD Today
DDD Today
DDD Today
DDD Today
DDD Today
DDD Today
DDD Today
DDD Misconceptions
DDD Misconceptions
DDD Misconceptions
DDD Misconceptions
DDD Misconceptions
Part II – Discovering the Domain Architecture through DDD
Introduction
Ubiquitous Language
Ubiquitous Language
Ubiquitous Language
Ubiquitous Language
Ubiquitous Language
Define the Ubiquitous Language
Define the Ubiquitous Language
Define the Ubiquitous Language
Define the Ubiquitous Language
Define the Ubiquitous Language
Define the Ubiquitous Language
Ubiquitous Language Tips
Ubiquitous Language Tips
Ubiquitous Language Tips
Ubiquitous Language Tips
Bounded Contexts
Bounded Contexts
Bounded Contexts
Bounded Contexts
Bounded Contexts
Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Discovering Bounded Contexts
Context Mapping
Context Mapping
Context Mapping
Context Mapping
Event Storming
Event Storming
Event Storming
Event Storming
Event Storming
Event Storming
Part III – The DDD Layered Architecture
Introduction
Introduction
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Layers of a Software System
The Presentation Layer
The Presentation Layer
The Presentation Layer
The Presentation Layer
The Application Layer
The Application Layer
The Application Layer
The Application Layer
The Application Layer
The Business Logic
The Business Logic
The Business Logic
The Business Logic
The Business Logic
The Business Logic
Patterns for Organizing the BL
Patterns for Organizing the BL
Patterns for Organizing the BL
Patterns for Organizing the BL
The Domain Layer
The Domain Layer
The Domain Layer
The Infrastructure Layer
The Infrastructure Layer
The Infrastructure Layer
Part IV – The "Domain Model" Supporting Architecture
Introduction
Introduction
Holistic Model for the Business Domain
Holistic Model for the Business Domain
Holistic Model for the Business Domain
Holistic Model for the Business Domain
Aspects of a Domain Model
Aspects of a Domain Model
Aspects of a Domain Model
Aspects of a Domain Model
Aspects of a Domain Model
Aspects of a Domain Model
Aspects of a Domain Model
Database-centric Domain Models
Database-centric Domain Models
The Crazy Little Thing Called Behavior
The Crazy Little Thing Called Behavior
The Crazy Little Thing Called Behavior
Domain Model as a Domain API
Aggregates and Value Types
Aggregates and Value Types
Aggregates and Value Types
Domain Services
Domain Services
Domain Services
Domain Services
Domain Services
Domain Services
Domain Services
Domain Services
Domain Services
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Events in the Business Domain
Anemic Models
Anemic Models
Anemic Models
Anemic Models
Beyond Single All-encompassing DMs
Beyond Single All-encompassing DMs
Part V – The CQRS Supporting Architecture
Introduction
Introduction
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS at a Glance
CQRS Regular
CQRS Regular
CQRS Regular
CQRS Regular
CQRS Regular in Action
CQRS Regular in Action
CQRS Regular in Action
CQRS Regular in Action
CQRS Premium
CQRS Premium
CQRS Premium
CQRS Premium
CQRS Premium
CQRS Premium in Action
CQRS Premium in Action
CQRS Premium in Action
Message-based Business Logic
Message-based Business Logic
Message-based Business Logic
Message-based Business Logic
CQRS Deluxe
CQRS Deluxe
CQRS Deluxe
CQRS Deluxe
CQRS Deluxe
CQRS Deluxe Implementation
CQRS Deluxe Implementation
CQRS Deluxe Implementation
CQRS Deluxe Implementation
CQRS Deluxe Implementation
CQRS Deluxe Implementation
CQRS Deluxe Code Inspection
Part VI – Event Sourcing
Introduction
Introduction
From CQRS to Events
From CQRS to Events
From CQRS to Events
From CQRS to Events
Event Sourcing at a Glance
Event Sourcing at a Glance
Event Sourcing at a Glance
Event Sourcing at a Glance
Event Sourcing at a Glance
Event Sourcing at a Glance
Event Sourcing at a Glance
Events as the Data Source
Events as the Data Source
Events as the Data Source
Events as the Data Source
Events as the Data Source
Events as the Data Source
Event-based Persistence
Event-based Persistence
Event-based Persistence
Event-based Persistence
Event-based Persistence
Event-based Persistence
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Data Projections from Stored Events
Event Sourcing in Action
Event-based Data Stores
Event-based Data Stores
Event-based Data Stores
Event-based Data Stores
Part VI – Designing Software Driven by the Domain
Introduction
Introduction
Dealing with Legacy Code
Dealing with Legacy Code
Dealing with Legacy Code
Dealing with Legacy Code
Revisiting CRUD Systems
Revisiting CRUD Systems
Revisiting CRUD Systems
Revisiting CRUD Systems
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
A Gentle Introduction to UX-driven Design
Highlights of UX-driven Design
Highlights of UX-driven Design
Highlights of UX-driven Design
Highlights of UX-driven Design
Pillars of Modern Software
References• https://app.pluralsight.com/library/course
s/modern-software-architecture-domain-models-cqrs-event-sourcing/table-of-contents
Thanks!