inflearn logo

Kết thúc giao dịch phân tán bằng mã (feat. AI Agent)

Dựa trên kinh nghiệm của bản thân khi lần đầu chuyển sang MSA — từng chỉ biết lý thuyết và cảm thấy tuyệt vọng khi triển khai mã nguồn thực tế — tôi đã đúc kết lại để giúp bạn vượt qua sự bế tắc trong logic bù trừ (compensation logic). Thông qua 9 bước mô hình thực chiến và lập trình cùng AI Agent, bạn sẽ được trực tiếp thực hành rollback, từ đó phát triển thành một lập trình viên có khả năng đảm bảo tính nhất quán dữ liệu tuyệt đối trước bất kỳ sự cố hệ thống nào.

12 học viên đang tham gia khóa học này

Độ khó Trung cấp trở lên

Thời gian Không giới hạn

AI
AI
AI Agent
AI Agent
Docker
Docker
transaction
transaction
MSA
MSA
AI
AI
AI Agent
AI Agent
Docker
Docker
transaction
transaction
MSA
MSA

Bạn sẽ nhận được điều này sau khi học.

  • Lý thuyết giao dịch phân tán dựa trên Java

  • Mô hình Saga thực tế (Orchestration & Choreography)

  • Triển khai mô hình TCC (Try-Confirm-Cancel)

  • Áp dụng mô hình Transactional Outbox

  • Thiết kế tính lũy đẳng & khả năng phục hồi

  • Triển khai logic phần thưởng sử dụng AI Agent

Bạn có thể giữ được tính nhất quán của dữ liệu ngay cả sau khi giao dịch mua thất bại không?

Sự khác biệt giữa một nhà phát triển chỉ biết lý thuyết và một nhà phát triển có khả năng xử lý sự cố
nằm ở việc trực tiếp triển khai logic bù trừ (compensation logic) để hoàn tác các giao dịch thanh toán thất bại bằng mã code.
Bắt đầu từ cấu trúc Monolithic, chuyển sang môi trường phân tán và hoàn thiện quy trình duy trì tính nhất quán của dữ liệu thông qua chín bước mô hình thực tế.

Hãy trải nghiệm thực hành không cần viết dù chỉ một dòng mã bằng cách sử dụng AI Agent. 🧑‍🔬

Tình huống dịch vụ đặt hàng đã xử lý xong nhưng dịch vụ thanh toán thất bại dẫn đến dữ liệu không đồng nhất, chúng ta sẽ không dừng lại ở việc tìm nguyên nhân mà sẽ áp dụng Saga mẫu (Saga pattern) để giải quyết.

Tình huống khi logic bù trừ thất bại một lần và càng thử lại thì dữ liệu càng bị sai lệch, áp dụng tính lũy đẳng (idempotency) để kiểm soát kết quả an toàn ngay cả khi cùng một yêu cầu được lặp lại.

Tình huống sự kiện bị mất do lỗi xảy ra trước khi tin nhắn giữa các dịch vụ được lưu trữ, thiết kế thay đổi dữ liệu và phát hành sự kiện cùng nhau bằng mô hình Transactional Outbox.

Việc cảm thấy bối rối với giao dịch phân tán (distributed transaction) là điều hết sức tự nhiên. Giờ đây, hãy tận dụng AI Agent để trực tiếp triển khai TCC, Saga (Orchestration và Choreography), Transactional Outbox cũng như thiết kế khả năng phục hồi.
Bạn sẽ tiến xa hơn để trở thành một nhà phát triển có khả năng giải thích rõ ràng nơi xảy ra lỗi và cách khôi phục ngay cả khi có sự cố phát sinh.

Từ nguyên lý giao dịch phân tán
đến triển khai Try-Confirm-Cancel và Saga,
bảo vệ tính nhất quán trong sự cố bằng tính lũy đẳng và khả năng phục hồi.

Trực tiếp hoàn thành việc rollback thanh toán và đặt chỗ để phát triển thành
nhà phát triển backend không bị lay chuyển trước các sự cố.

Sau khi kết thúc khóa học này, bạn sẽ

Bạn có thể trực tiếp truy vết và phục hồi sự bất nhất dữ liệu trong môi trường phân tán.

  • Bạn sẽ được quan sát từng bước quá trình chia tách từ cấu trúc Monolithic sang MSA, đồng thời tái hiện bằng mã nguồn các tình huống như: thanh toán đã hoàn tất nhưng không còn ghế trống, hoặc đơn hàng thất bại nhưng điểm thưởng vẫn bị trừ. Bằng cách kết nối các điểm gây lỗi với luồng dữ liệu, bạn có thể tự mình tìm ra nguyên nhân gốc rễ.


😎😎😎

Cách triển khai giao dịch phân tán nhằm đảm bảo tính nhất quán của dữ liệu ngay cả khi xảy ra sự cố

Từ Monolithic đến MSA
Thiết kế tự hoàn thiện luồng bù trừ 🛠️

Chúng ta sẽ tìm hiểu lý do tại sao dữ liệu bị sai lệch khi các quy trình đặt hàng và thanh toán vốn được xử lý trong một giao dịch duy nhất nay được chia tách theo từng dịch vụ, đồng thời triển khai từng bước hoạt động của giao dịch bù đắp (compensation transaction) bằng AI Agent.
Bằng cách so sánh TCC, phương pháp Orchestration và phương pháp Choreography, bạn sẽ trực tiếp hoàn thiện luồng công việc để hoàn tác các tác vụ thất bại và khôi phục tính nhất quán của dữ liệu.

⚡Thực hành tái hiện và khắc phục vấn đề thanh toán trùng lặp và tính lũy đẳng

Sau khi chuyển đổi cấu trúc Monolithic sang MSA, chúng ta sẽ tái hiện các tình huống thanh toán thất bại và bù đắp thất bại, đồng thời kiểm tra kết quả xử lý của các mẫu TCC và Saga trong môi trường Docker.
Bằng cách áp dụng luồng sự kiện sử dụng Kafka, Transactional Outbox, xử lý tính lũy đẳng và Circuit Breaker, chúng ta sẽ tạo ra mã nguồn có khả năng chịu đựng các yêu cầu lặp lại và lỗi dịch vụ.

🔥Thực hành sử dụng AI Agent để không phải tự tay viết dù chỉ một dòng mã

Từ thiết lập dự án cơ bản đến logic bù trừ Saga, Transactional Outbox, xử lý tính lũy đẳng và thiết kế khả năng phục hồi, bạn có thể thực hiện theo từng bước bằng cách sử dụng AI Agent mà không cần tự tay viết bất kỳ một dòng mã nào trong bài giảng.
Bạn sẽ được kiểm tra kết quả hoạt động và các tình huống lỗi của từng giai đoạn, đồng thời kết nối với luồng thực tế để triển khai và cải thiện logic bù trừ.


📚

Từ Monolith đến thiết kế khả năng phục hồi, tự mình triển khai qua chín bước

Phần 1

Triển khai kiến trúc Monolithic

Trong cấu trúc ứng dụng đơn nhất, các luồng công việc như đặt hàng và thanh toán được triển khai dưới dạng một giao dịch cục bộ (local transaction) duy nhất. Thông qua việc kiểm tra thiết lập cơ bản của dự án và kết quả thực thi, người học sẽ hiểu được nguyên lý hoạt động của giao dịch nguyên khối (monolithic transaction).


Phần 2

Chuyển đổi kiến trúc Microservices

Chia tách ứng dụng monolithic thành nhiều microservices và triển khai cấu trúc gọi giữa các dịch vụ. Xác nhận vấn đề nhất quán dữ liệu phát sinh khi các giao dịch bị tách rời trong môi trường phân tán thông qua mã nguồn và kết quả thực thi.


Phần 3

Triển khai giao dịch bù đắp

Triển khai giao dịch bù trừ (compensating transaction) để hoàn tác các công việc đã hoàn thành khi giao dịch phân tán thất bại. Kiểm chứng logic bù trừ và luồng thực thi của từng dịch vụ thông qua mã nguồn, đồng thời nắm vững phương pháp đảm bảo tính nhất quán dữ liệu dựa trên cơ chế bù trừ.


Phần 4

Triển khai mẫu TCC

Học tập nguyên lý và phương pháp triển khai mô hình TCC, giúp phân tách giao dịch thành các giai đoạn Thử nghiệm (Try), Xác nhận (Confirm) và Hủy bỏ (Cancel). So sánh sự khác biệt giữa Commit hai giai đoạn (2PC) và TCC, các tình huống áp dụng cũng như ưu nhược điểm trong môi trường phân tán.


Phần 5

Triển khai Saga Orchestration

Tìm hiểu nguyên lý hoạt động của phương thức Saga Orchestration và triển khai luồng bù đắp (compensation) sử dụng bộ điều phối trung tâm. Nội dung bao gồm xử lý tình huống bù đắp thất bại, cải thiện mã nguồn, khái niệm về các công cụ workflow bền bỉ và thiết kế cấu trúc ứng phó sự cố.


Phần 6

Triển khai Saga Choreography

Triển khai Choreography Saga, nơi mỗi dịch vụ tự chủ thực hiện các tác vụ tiếp theo và các tác vụ bù đắp dựa trên sự kiện giữa các dịch vụ. Kiểm tra luồng hoạt động sử dụng Message Broker, đồng thời so sánh sự khác biệt về cấu trúc và tiêu chí lựa chọn so với phương pháp Orchestration.


Phần 7

Triển khai Transactional Outbox Pattern

Học về mô hình Transactional Outbox để ngăn chặn sự không nhất quán giữa việc thay đổi dữ liệu và phát hành sự kiện. Áp dụng phương thức triển khai lưu trữ sự kiện cùng với giao dịch cơ sở dữ liệu, sau đó phát hành chúng một cách an toàn.


Phần 8

Đảm bảo tính lũy đẳng

Thiết kế tính lũy đẳng sao cho kết quả vẫn giữ nguyên như khi xử lý một lần, ngay cả khi cùng một yêu cầu hoặc sự kiện được xử lý nhiều lần. Tái hiện các vấn đề về tính lũy đẳng và triển khai logic xử lý để ngăn chặn các lỗi như thanh toán trùng lặp.


Phần 9

Thiết kế khả năng phục hồi và Circuit Breaker

Tìm hiểu về khái niệm và nguyên tắc thiết kế khả năng phục hồi (resilience) để hấp thụ các lỗi trong hệ thống phân tán một cách bình thường. Áp dụng Circuit Breaker và xác định cách các lời gọi dịch vụ được cô lập và phục hồi trong tình huống lỗi thông qua mã nguồn và kết quả thực thi.


Có thể giải quyết nỗi lo của
những người như thế này! 💡

📌

Nhà phát triển Backend cấp độ Junior

Những người đang gặp phải vấn đề đơn hàng và thanh toán vốn được xử lý bình thường trong ứng dụng đơn nhất, nhưng sau khi tách dịch vụ lại rơi vào các trạng thái khác nhau.
Những người muốn chia nhỏ cấu trúc Monolithic thành MSA và trực tiếp triển khai logic bù đắp (compensation logic) để hoàn tác các tác vụ bị lỗi.

📌

Nhà phát triển cấp trung phụ trách chuyển đổi sang MSA

Những người cần giải quyết sự cố đơn hàng đã hoàn tất nhưng thanh toán bị trùng lặp hoặc chỗ ngồi bị bán lại.
Những người muốn áp dụng Saga (theo phương thức Orchestration và Choreography), TCC, Transactional Outbox vào luồng dịch vụ thực tế.

📌

Nhà phát triển Backend đang chuẩn bị thiết kế hệ thống phân tán

Những người đã nắm vững lý thuyết và các mô hình giao dịch phân tán nhưng chưa kết nối được từ việc tái hiện lỗi đến triển khai tính lũy đẳng, thử lại và circuit breaker.
Những người muốn hoàn thiện mã nguồn cho các giao dịch bù đắp và luồng xử lý có khả năng phục hồi bằng cách sử dụng các đại lý AI.




Lưu ý trước khi khóa học bắt đầu


Môi trường thực hành

  • Tận dụng tối đa AI Agent và Docker.

  • Trong bài giảng có sử dụng Gemini và Antigravity, nhưng bạn có thể sử dụng bất kỳ AI Agent nào cũng được.

Kiến thức tiên quyết và lưu ý

  • Cần có kiến thức cơ bản về Java, Spring Boot, REST API và cơ sở dữ liệu.

  • Sẽ dễ dàng hơn nếu bạn hiểu về cấu trúc môi trường phân tán (MSA).

  • Khóa học này phù hợp với các nhà phát triển trình độ sơ cấp/trung cấp.

  • Viết mã trực tiếp theo các ví dụ thực tế.

Tài liệu học tập

  • Chia sẻ tài liệu bài giảng Notion có thể cập nhật theo thời gian thực.

  • Chia sẻ kho lưu trữ GitHub được chia thành các nhánh theo từng bước.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển cấp trung muốn nâng cao năng lực lập trình thực chiến, vượt xa các mô hình Saga·TCC

  • Nhà phát triển đang khổ sở vì vấn đề nhất quán dữ liệu sau khi chuyển đổi sang MSA

  • Nhà phát triển muốn giải quyết triệt để các lỗi nghiêm trọng như thanh toán trùng lặp hay ghế ma.

Cần biết trước khi bắt đầu?

  • Spring Boot & Java/Kotlin cơ bản

  • Kiến thức cơ bản về RDBMS & SQL

  • Cơ bản về Docker / Docker Compose

  • Cơ bản về mạng và giao tiếp HTTP

  • Ý chí sử dụng công cụ AI Agent

Xin chào
Đây là joyopi

Xác minh sự nghiệp

134

Học viên

10

Đánh giá

1

Trả lời

5.0

Xếp hạng

2

Các khóa học

(現) AhnLab バックエンド開発者

Chương trình giảng dạy

Tất cả

38 bài giảng ∙ (7giờ 22phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Ưu đãi có thời hạn

57.750 ₫

30%

1.720.195 ₫