Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Domain Driven Design & Microservices for Architects
Course outline
Author Introduction & Course Outline (4:38)
Development tools & setup (7:27)
Microservices Architecture
Microservices Architecture (5:38)
Business | Digital Transformations (9:48)
Business perspective : MSA (8:01)
Technology perspective : MSA (8:21)
Microservices Architecture Adoption (8:58)
Introduction to Domain Driven Design
Domain, Sub-Domain and Domain Experts (5:26)
Conceptual models, Architecture and Design (9:13)
Modeling techniques & Architectural Styles (7:53)
Domain Models (6:26)
Unified | Enterprise Domain Models (6:05)
Understanding the Business or Domain
Learning Objectives : Why understand the business? (2:36)
Introduction to Business Model Canvas (7:11)
Case Study : ACME Travels Business Model Canvas (8:07)
Domain Driven Design - Strategic Patterns
Learning Objectives : Introduction to DDD and Patterns (2:20)
Business Subdomain Types (10:28)
Exercise : ACME Subdomain Type Assignment (4:56)
Understanding the Business Context (4:39)
Business Domain Language (7:15)
Strategic Pattern : Ubiquitous Language (7:33)
Exercise : Define ACME's Ubiquitous Language (6:27)
Strategic Pattern : Bounded Context (7:48)
Discovering the Bounded Contexts in a Domain (7:04)
Exercise : Identify ACME's Bounded Contexts (8:17)
Bounded Context Relationships
Learning Objectives : DDD Integration Patterns (2:19)
Managing BC Relationships using Context Maps (5:17)
Symmetric Relationship Patterns (6:25)
Asymmetric Relationship Patterns (8:15)
One to Many Relationship Patterns (3:34)
Exercise : Context Mapping for a Bank (5:30)
Domain Driven Design - Tactical Patterns
Learning Objectives : Intro to Tactical Patterns (1:38)
Entity Object - Pattern (6:36)
Value Object - Pattern (7:55)
Exercise : Identify Entity & VO in ACME Sales Model (8:39)
Hands On : Building the ACME Sales Entities & VO in JAVA (10:32)
Aggregate & Factory - Pattern (5:24)
Exercise : ACME Sales Use Case (3:55)
Hands On : UML for ACME Sales Aggregates (4:52)
Model Behavior : Anemic & Rich Models (4:52)
Repository Object - Pattern (10:02)
Hands On : ACME model Repository in UML & JAVA (10:12)
Domain Service - Pattern (6:50)
Application Services - Pattern (6:12)
Infrastructure Services - Pattern (5:13)
Hands On : ACME Domain Service, UML & JAVA (5:15)
Hands On : Application and Infrastructure Services, UML & JAVA (6:12)
Events Driven Architecture & Domain Events
Learning Objectives : Intro to Events in Microservices (1:55)
Monolithic & Distributed Communication Patterns (7:07)
Microservices Interaction Patterns (9:15)
Event Driven Architecture (10:48)
Hands On : Pub Sub with AMQP/RabbitMQ (9:46)
Domain Events - Pattern (11:34)
Hands On : Static Class Broker Pattern (8:28)
Exercise : ACME Sales Domain Events (6:08)
Hands On : Realization of ACME Domain Events (3:06)
Integration Events - Pattern (7:13)
Exercise : ACME Sales Integration Events (8:22)
Hands On : Realization of ACME Integration Events (1 of 2) (7:51)
Hands On : Realization of ACME Integration Events (2 of 2) (4:32)
Event Storming for creating shared knowledge
Learning Objectives : Discovering the Events in a Domain (1:37)
Introduction to Event Storming (7:20)
Elements of Event Storming (8:24)
Preparing for the ES Workshop (6:51)
Conducting the ES Workshop (7:09)
Exercise : ACME Sales ES Workshop (9:39)
Microservices Data Management Patterns
Learning Objectives : Introduction to Microservices Data Persistence (1:31)
Monolithic Apps - Shared Persistence Storage (5:30)
Service Oriented Architecture (SOA) (2:25)
Separate Database pattern (4:09)
Brownfield Microservices : Database patterns | options (6:55)
Shared Database Pattern (9:35)
Shared Database : Challenges & Solutions (8:12)
Microservices DB Performance Management
Learning Objectives : Need for more Data Patterns (2:36)
Commands Query Separation (CQS) (4:26)
Hands On : PostgreSQL Database for backend (9:54)
Realization of Commands & Queries (5:47)
Hands On : Build the CQS Pattern (10:37)
Command Query Responsibility Segregation (CQRS) (7:17)
Data Replication between WRITE-READ sides (3:29)
Exercise : ACME CQRS for Proposal (6:26)
Hands On : ACME CQRS command implementation (6:09)
Event Sourcing and Event Store considerations (8:27)
Hands On : MongoDB for ACME Sales READ side (7:52)
Hands On : CQRS-v1 Proposal Subscriber (6:38)
Hands On : CQRS-v2 Read side Query (2:20)
Microservices Managing the Data Integrity
Learning Objectives : Introduction to Reliable Messaging (1:52)
Designing for Failure (10:33)
Exercise : Address ACME CQRS Write side failures (12:09)
Exercise : Address ACME CQRS Read side failures (9:18)
Hands On : Handling Duplicate Messages (5:49)
Microservices and Kafka
Learning Objectives : Use of Kafka in Microservices (1:26)
Kafka Overview (3:45)
Kafka Concepts (11:22)
Hands On : Create a Kafka Cluster (6:34)
Hands On : Working with Kafka Producer (5:20)
Hands On : Working with Kafka Consumer Groups (8:12)
Kafka vs AMQP (RabbitMQ) (5:15)
Exercise : Messaging for Microservices (7:12)
Managing Distributed Transactions with SAGA
Learning Objectives : Distributed Transactions with SAGA (0:58)
SAGA Pattern for distributed transactions (8:00)
SAGA Choreography Vs. Orchestration (7:08)
SAGA Implementation Considerations (4:11)
Exercise : ACME Sales Booking Transaction SAGA (11:38)
Hands On : UML & Code walkthrough of Booking SAGA (9:11)
Microservices and API
Microservices-API Realization (2:14)
Introduction to REST API (2:44)
REST API Resources & Design constraints (7:16)
API Management (6:38)
Exercise : ACME REST API for Products (4:16)
Hands On : ACME REST API in action (6:02)
Introduction to GraphQL (10:19)
GraphQL Schema Definition (9:21)
Exercise : ACME GraphQL API for Products (4:52)
Hands On : ACME GraphQL API in action (7:24)
Hands On : CQRS-v2 Read side Query
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock