Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

Kiến trúc Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

Kiến trúc Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

Học Spring Boot microservices với kiến trúc Clean và Hexagonal, DDD, SAGA, Outbox, CQRS, Kafka, Kubernetes & GKE

4.5
(3,305 đánh giá)
32,324 học viên
Giảng viên
Ali Gelenler
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 1.879.000đ -97%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
21.0 giờ video
123 bài giảng
19 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 12/08/2026

Bạn sẽ học được gì

Phát triển Kiến trúc Microservices sử dụng Spring Boot và Kafka
Hiểu và Áp dụng Clean Architecture
Hiểu và Áp dụng Hexagonal Architecture
Hiểu và Áp dụng Domain Driven Design (DDD)
Triển khai mẫu kiến trúc SAGA
Triển khai mẫu kiến trúc Outbox
Triển khai mẫu kiến trúc CQRS
Tìm hiểu Kiến trúc Kafka và Lập trình trên Kafka
Học cách sử dụng Kafka làm Event Store cho các dịch vụ hướng sự kiện
Tìm hiểu kiến thức cơ bản về Kubernetes & Chạy cụm cục bộ bằng Docker Desktop
Triển khai microservices lên Cụm Kubernetes cục bộ
Chạy Confluent Kafka trên Kubernetes bằng cp-helm-charts
Chạy Postgres trên Kubernetes
Tìm hiểu Google Cloud và Google Kubernetes Engine (GKE)
Triển khai microservices lên Google Kubernetes Engine
Tìm hiểu Change Data Capture (CDC) với Debezium và Kafka

Yêu cầu

Kiến thức về Java
Kiến thức về Spring Boot
Kinh nghiệm phát triển Back-end

Đối tượng phù hợp

Dành cho Nhà phát triển và Kiến trúc sư muốn tìm hiểu cách tiếp cận thực tế với Clean Architecture, Hexagonal Architecture và Domain Driven Design
Dành cho Nhà phát triển và Kiến trúc sư muốn học các mẫu kiến trúc như SAGA, Outbox và CQRS
Dành cho Nhà phát triển muốn học cách triển khai kiến trúc microservices lên Đám mây bằng Google Kubernetes Engine
Dành cho người thích học qua thực hành

Nội dung khóa học

15 phần • 123 bài giảng
1 Cấu trúc khóa học
2 Tổng quan dự án - Phần 1
3 Tổng quan dự án - Phần 2
4 Thiết lập môi trường
5 Cung cấp mã nguồn
1 Giới thiệu về Clean và Hexagonal Architectures
2 Thiết kế các thành phần cho Order Service sử dụng Clean Architecture
3 Tạo các module Order Service sử dụng Clean Architecture - PHẦN 1
4 Tạo các module Order Service sử dụng Clean Architecture - PHẦN 2
1 Giới thiệu về Domain Driven Design
2 Thiết kế các thành phần logic nghiệp vụ cho Order Service
3 Tạo module domain chung với các lớp Entity và Aggregate Root cơ sở
4 Thêm các value object và domain event vào module domain chung
5 Triển khai logic nghiệp vụ Order Service sử dụng DDD - Order Aggregate Root
6 Thêm các phương thức triển khai cho Order Entity
7 Thêm các phương thức thay đổi trạng thái vào Order Entity
8 Triển khai Domain Events trong tầng domain của Order Service
9 Triển khai Order Domain Service
10 Triển khai Order Application Service - Các lớp DTO
11 Thêm lớp Mapper và định nghĩa port vào Order Application Service
12 Triển khai input ports trong Order Application Service
13 Triển khai message publisher trong Order Application Service để kích hoạt sự kiện
14 Triển khai Order Track Command Handler
15 Kiểm thử logic nghiệp vụ Order Service - Phần 1
16 Kiểm thử logic nghiệp vụ Order Service - Phần 2
1 Giới thiệu về Apache Kafka
2 Chạy Apache Kafka bằng Docker
3 Triển khai module chung cho Kafka config data
4 Triển khai module chung cho Kafka model
5 Triển khai module chung cho Kafka producer
6 Triển khai module chung cho Kafka consumer
1 Module Application: Thêm Web Controller
2 Module Application: Thêm Controller Advice
3 Module Data access: Thêm Order JPA Entity
4 Module Data access: Thêm JPA Repository & Adapter implementation
5 Module Data access: Thêm các triển khai cho Customer và Restaurant
6 Module Messaging: Thêm Mapper và Config Data
7 Module Messaging: Thêm các triển khai Publisher
8 Module Messaging: Thêm các triển khai Listener
9 Module Container: Thêm lớp spring boot starter và config
10 Module Container: Giải thích các thuộc tính kafka consumer
11 Module Container: Thêm file schema cơ sở dữ liệu Order
12 Tạo Customer Service & Chạy Order Service
1 Module Domain core: Thêm Aggregate Root, Entity và Value objects
2 Module Domain core: Thêm Exception và Domain events
3 Module Domain core: Triển khai Payment Domain Service
4 Module Application Service domain: Thêm Mapper, Config và Ports
5 Module Application Service domain: Triển khai input ports - Phần 1
6 Module Application Service domain: Triển khai input ports - Phần 2
7 Module Application Service domain: Tái cấu trúc quy trình kích hoạt sự kiện
8 Triển khai module Data Access
9 Triển khai module Messaging: Thêm Mapper và Publishers
10 Triển khai module Messaging: Thêm Listeners
11 Triển khai module Container
1 Module Domain core: Thêm Aggregate Root và Entities
2 Module Domain core: Thêm Exception, Domain events và Domain Service
3 Module Application Service domain: Thêm Mapper, DTO và Ports
4 Module Application Service domain: Triển khai input ports
5 Triển khai module Data Access
6 Triển khai module Messaging
7 Triển khai module Container
1 Giới thiệu về mẫu SAGA
2 Triển khai Order Payment Saga
3 Sử dụng Order Payment Saga trong Messaging & Triển khai Order Approval Saga
4 Kiểm thử end-to-end ứng dụng với các thay đổi mẫu SAGA
5 Kiểm thử các tình huống thất bại
1 Giới thiệu về mẫu Outbox
2 Cập nhật schema cơ sở dữ liệu và config của Order Service cho mẫu Outbox
3 Tái cấu trúc tầng domain Order: Thêm Outbox models & Cập nhật ports
4 Tái cấu trúc tầng domain Order: Thêm Outbox scheduler
5 Tái cấu trúc tầng domain Order: Thêm Outbox cleaner scheduler cho Payment
6 Tái cấu trúc tầng domain Order: Thêm Outbox schedulers cho Approval
7 Tái cấu trúc tầng domain Order: Cập nhật OrderCreate Command Handler
8 Tái cấu trúc tầng domain Order: Cập nhật Order Payment Saga - Phần 1
9 Tái cấu trúc tầng domain Order: Cập nhật Order Payment Saga - Phần 2
10 Tái cấu trúc tầng domain Order: Cập nhật Order Approval Saga
11 Cập nhật bài kiểm tra Order Application Service cho các thay đổi mẫu Outbox
12 Tái cấu trúc module Data Access của Order cho mẫu Outbox
13 Tái cấu trúc module Messaging của Order cho mẫu Outbox - Phần 1
14 Tái cấu trúc module Messaging của Order cho mẫu Outbox - Phần 2
15 Kiểm thử Order Payment Saga
16 Cập nhật schema cơ sở dữ liệu, config và cấu trúc package của Payment cho Outbox
17 Tái cấu trúc tầng domain Payment: Thêm Outbox schedulers
18 Tái cấu trúc module Data Access của Payment cho mẫu Outbox
19 Tái cấu trúc module Messaging của Payment cho mẫu Outbox
20 Tái cấu trúc tầng domain Payment: Cập nhật triển khai Message listener
21 Kiểm thử Payment Request Message Listener cho trường hợp thanh toán trùng lặp
22 Tái cấu trúc Restaurant Service cho mẫu Outbox - Phần 1
23 Tái cấu trúc Restaurant Service cho mẫu Outbox - Phần 2
24 Kiểm thử end-to-end ứng dụng với các thay đổi mẫu Outbox
1 Giới thiệu về mẫu CQRS
2 Tạo Kafka topic cho Customer & Các module Customer
3 Kiểm thử các tình huống thất bại
4 Triển khai các module Customer Service
5 Cập nhật Order Service để sử dụng bảng cơ sở dữ liệu cục bộ với mẫu CQRS
6 Chạy Order và Customer Services để kiểm thử mẫu CQRS
1 Giới thiệu về Kubernetes và chạy Kubernetes cục bộ bằng Docker Desktop
2 Triển khai Confluent Kafka lên Kubernetes cục bộ bằng cp-helm-charts
3 Tạo các file deployment Kubernetes cho Microservices
4 Triển khai Microservices vào Kubernetes cục bộ
5 Triển khai Postgres lên Kubernetes cục bộ bằng Docker image Postgres
1 Tạo tài khoản Google Cloud & Tạo một cụm Kubernetes trong GKE
2 Đẩy docker images lên Google Artifact Registry
3 Chạy Ứng dụng trên Google Kubernetes Engine - Phần 1
4 Chạy Ứng dụng trên Google Kubernetes Engine - Phần 2
5 Thêm khả năng mở rộng ngang (horizontal scaling) cho các dịch vụ
6 Các bước tiếp theo & Lời cảm ơn!
1 Giới thiệu về Change Data Capture
2 Debezium Kafka Connector
3 Cấu hình Postgresql cho Change Data Capture
4 Debezium source connector cho Postgresql
5 Tạo các script khởi động và tắt
6 Các thay đổi triển khai cho Change Data Capture - Phần 1
7 Các thay đổi triển khai cho Change Data Capture - Phần 2
8 Các thay đổi triển khai cho Change Data Capture - Phần 3
9 Chạy nhiều instance của các dịch vụ với kịch bản hiệu năng Jmeter
10 Sử dụng Optimistic locking & So sánh các chiến lược Lock với bài kiểm tra tải Jmeter
11 So sánh Change Data Capture & Pulling bảng Outbox bằng bài kiểm tra tải Jmeter
1 Cập nhật lên spring boot 2.7.5
2 Cập nhật lên spring boot 3.0.5
3 Cập nhật lên spring boot 3.1.5
4 Cập nhật lên spring boot 3.3.2 & Kafka Kraft
1 Bài giảng bổ sung

Giới thiệu khóa học

Hi there! My name is Ali Gelenler. I'm here to help you learn microservices architecture while applying Clean and Hexagonal Architectures and using Domain Driven Design.

In this course, you will focus on architectural aspects of microservices architecture and use Clean & Hexagonal Architecture principles while developing each service. In the implementation of the domain layer you will also apply Domain Driven Design principles.

You can always use the latest versions for spring boot, and other dependencies in this course. I will be constantly updating the dependency version in the last section's lectures. You may check that to see the required code and configuration changes for updated versions. Also if you would like to use subtitles during the course, you can turn on the captions on videos as all lectures are updated with hand-written subtitles. You may choose among over 20 different languages. I suggest using subtitles to make it easier to follow the lectures.

 

  • Scott Knox: "As a working professional, I can already tell this is the holy grail of understanding modern architectures. If your company is struggling to grasp certain concepts, this course will help you help them. Thanks Ali for the excellent explanations!"

You will implement SAGA, Outbox and CQRS patterns using the 4 Spring boot Java microservices that you will develop using Clean and Hexagonal architecture principles.

 

  • Nick Goupinets: "Great course - gives a deep-dive into microservice development experience with Spring Boot. As an added bonus shows how to deploy it with Kubernetes. At times it felt too detailed, sort of making it hard to see the forest behind the trees. Also Hex. architecture resulted in what looked like an over-engineered overall solution. With that said, Ali did a fantastic job explaining all of the design decisions with clear architecture diagrams that offset that complexity!"

You will also learn and use Apache Kafka as the event store, and use events to communicate between services, and to implement the architectural patterns.

 

  • Nischal Jadhav: "If u are looking to become an high level developer or an architect, then this is the best course.!"

The concepts that you will be learning and implementing are:

  • Spring boot microservices

  • Clean Architecture

  • Hexagonal Architecture

  • Domain Driven Design

  • Event-driven services using Apache Kafka

  • SAGA Architecture Pattern

  • Outbox Architecture Pattern

  • CQRS Architecture Pattern

  • Kubernetes on local using Docker desktop

  • Kubernetes on Google Cloud using Google Kubernetes Engine(GKE)

 

  • Ali Aminian: "I really like this course. Thanks Ali for complete description and professional coding. I really enjoy to participate this course."

To communicate with the data stores in microservices you will use Spring Data JPA for PostgreSQL, and Spring Kafka for Kafka.

You will be following a hands-on approach and  developing a project from scratch. You will have 4 microservices that communicate using events with Kafka as the event store.

 

  • r j: "This is an amazing course. An architect from my team recommended this to me and he's implemented something similar but bigger in our company, the biggest retailer on the planet."

You will also have multiple choice quizzes in each section to check your progress throughout the course.

 

  • Arindam Majumdar: "This course helped me immensely to understand the Domain Driven Design approach on Microservices. Its so far the best hands on course I have come across in Udemy so far. Many thanks to Ali. Great job!! :)"

At the end of the course you will understand how to run an event-driven microservices architecture with Clean and Hexagonal Architecture principles and with Domain Driven Design concepts. You will use Spring boot and Java to develop the microservices. You will also learn implementing architectural microservices patterns such as SAGA, Outbox and CQRS. In the end you will be able to deploy your application to Kubernetes on Google Cloud using Google Kubernetes Engine.

 

  • Anurag tiwari: "Just started the course but i can already tell that this a good one Ali explains all the concepts like out box ,saga pattern so well. I would highly recommend this course for anyone who wants to take their knowledge about microservices to the next level using different patterns like hexagonal ,saga pattern. I would also recommend this course for beginners as youll learn a ton of stuff regarding microservices and patterns to create agile services as this course is very hands on"

I have followed the same clean & hexagonal architectures and domain driven design principles in the implementation of each microservice. If you feel like you want to skip some repeating parts, you may download the source code that I provide in the first lecture of each section starting from section-3 or using the github links that I provided in the course resources. You can then use the provided source code to continue with the section.

 

  • Narendra Kumar A: "Its awesome course, I have ever come across in Udemy explaining the DDD, Clean architecture and usage of patterns concepts so cleanly."

For more detailed information on the progress of this course, you can check the introductory video and free lessons, and if you decide to enroll in this course, you are always welcome to ask and discuss the concepts and implementation details on Q/A and messages sections. I will guide you from start to finish to help you successfully complete the course and gain as much knowledge and experience as possible from this course.

 

  • Jason: "This course is one of the best I ever had. There are many microsevices courses on Udemy, and most of them are like something that manufactured in the same factory. They all used the same framework and followed the same steps to teach microservices. They never talked about the important concepts behind the microservice. I felt like they just wanted to show off the latest version of frameworks and finish the long courses with them quickly and get paid. The impression after I watched first this lesson was amazing. He actually starts the project with the bare bone java plain object. It was like I'm flying with feather, not fully armed with numerous buzzword frameworks. It might be frustrated at first if you are really new to microservices and never heard of concepts like DDD before. But I'm pretty sure this is one of the courses that make you a "better" developer."

Remember! There is a 30-day full money-back guarantee for this course! So you can safely press the 'Buy this course' button with zero risk and join this learning journey with me.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Apache Kafka
Hiển thị tất cả khoá học Microservices
Hiển thị tất cả khoá học Software Architecture
Hiển thị tất cả khoá học Spring Boot
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊