Clean Architecture & Domain-Driven Design in NestJS
Build a complete e-commerce backend in NestJS the way large teams do: clean architecture, ports and adapters, and domain-driven design. Model products, customers, orders and Stripe payments with real domain rules, events and swappable Drizzle and MongoDB adapters
78 lessons 12 h 14 min
02Shared Domain & Infrastructure
03Products - Part 1
- 09Product Identifier & Sku14:48
- 10Product Entity12:26
- 11Product Repository Port6:13
- 12Drizzle Product Adapter4:25
- 13Product Schema8:42
- 14Drizzle Product - Save8:04
- 15Drizzle Product - Find10:53
- 16Product Controller & DTOs14:16
- 17Create Product Command10:43
- 18Create Product Handler7:42
- 19Drizzle Kit Migrations6:46
- 20Create Product Testing3:16
- 21Get Products12:22
04Exception Handling
05Products - Part 2
06Dynamic Database
07Customers
08Notifications
09Orders - Part 1
- 43Order Entity4:13
- 44Order Status Invariance13:38
- 45Shipping Address8:23
- 46Order Item14:02
- 47Order Entity Model10:29
- 48Order Repository Port2:15
- 49Order Schema13:59
- 50Order Repository Adapter - Save6:38
- 51Order Item Repository Adapter - Save11:00
- 52Order Repository Adapter - Find One10:15
- 53Order Relations & Finds10:56
10Orders - Part 2
11Payments
- 66Payment Status6:25
- 67Payment Entity7:45
- 68Payment Schema7:46
- 69Drizzle Payment Adapter9:35
- 70Payment Gateway Port4:09
- 71Stripe Setup2:19
- 72Stripe Payment Adapter12:33
- 73Create Payment Handler - Part 115:15
- 74Order Pricing Adapter10:30
- 75Create Payment Handler - Part 213:04
- 76Stripe Webhooks13:46
- 77Confirm Payment23:59
- 78Order Fulfillment Saga9:43