inflearn logo

Backend tài chính thực chiến do nhà phát triển Toss với MAU 30,000,000 chia sẻ: Outbox, tính idempotent, Dual Write

Thiết kế và triển khai hệ thống đối soát vững chắc dựa trên kinh nghiệm thực tế về backend tại Toss, dành cho các nhà phát triển gặp bế tắc do thanh toán trùng lặp và sự không nhất quán giữa thanh toán bên ngoài với DB.

(4.2) 5 đánh giá

242 học viên

Độ khó Nhập môn

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

JavaScript
JavaScript
Blockchain
Blockchain
PostgreSQL
PostgreSQL
Docker
Docker
TypeScript
TypeScript
JavaScript
JavaScript
Blockchain
Blockchain
PostgreSQL
PostgreSQL
Docker
Docker
TypeScript
TypeScript

Đánh giá từ những học viên đầu tiên

4.2

5.0

배현우

96% đã tham gia

Tôi rất ấn tượng với cách đặt ra mục tiêu muốn triển khai dựa trên các bài kiểm thử, rồi từ đó xây dựng logic ứng dụng. - Vì vậy, tự nhiên cũng có xu hướng tạo ra nhiều tệp hơn một chút haha. Dù vậy, giảng viên còn hướng dẫn cả cách viết mã sao cho phù hợp với Clean Code. Đúng như tên khóa học, đây là một khóa học tập trung vào những yếu tố làm nên các tiêu chuẩn. Nội dung có thể khiến bạn cảm thấy hiển nhiên, thậm chí hơi quen thuộc. Nhưng đây là một chủ đề khiến tôi suy nghĩ lại về các mẫu thiết kế và cách thiết kế này. Tôi nghĩ đây là một khóa học hay, nơi bạn có thể cùng làm theo từng bước và nhìn nhận lại bản thân một lần nữa. Xin cảm ơn.

5.0

두쫀쫀쿠

75% đã tham gia

Trong buổi livestream, anh Hong đã trực tiếp chia sẻ rằng: "Đừng để AI khiến bạn mất tự tin, hãy trở thành người biết cách tận dụng chính AI" Xét từ góc độ đó, bài giảng này thực sự rất hữu ích ạ haha Trước khi xem bài giảng này, nếu sử dụng AI thì có lẽ tôi sẽ yêu cầu như thế này: - "Hãy tạo API xử lý đơn hàng có tích hợp PG" Nhưng nhờ những nội dung trong bài giảng này, tôi đã trưởng thành và hiểu biết hơn, nên giờ có lẽ tôi có thể yêu cầu như thế này: - "Tôi định tích hợp PG, nhưng cần đảm bảo cơ chế thử lại và tính idempotency. Tôi muốn phòng tránh việc thanh toán trùng lặp. Ngoài ra, những điểm cần cân nhắc từ góc độ domain bên ngoài (trong bài giảng này là blockchain) là ~~; hãy áp dụng cả góc độ này nữa" Tôi nghĩ mình đã trở thành người có thể đặt câu hỏi một cách mạch lạc hơn rồi haha Cảm ơn vì nội dung tuyệt vời!

5.0

이병석

77% đã tham gia

Có thể đây là những điều hiển nhiên, nhưng đây vẫn là một chủ đề rất hay để tôi nhìn lại kiến thức của bản thân. Tôi nhận ra mình còn thiếu nhiều kiến thức cơ bản hơn mình nghĩ, đồng thời cũng hiểu rằng có nhiều khía cạnh cần lưu ý khi nhìn từ góc độ thanh toán hơn mình tưởng. Cảm ơn bạn vì những nội dung hữu ích!

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

  • Xác định các yêu cầu về trạng thái giao dịch và tính nhất quán dữ liệu trong lĩnh vực thanh toán·đối soát.

  • Ngăn chặn thanh toán kép và xử lý trùng lặp bằng khóa idempotent và logic ngăn yêu cầu trùng lặp.

  • Áp dụng mức độ cô lập giao dịch và kiểm soát đồng thời để thay đổi số dư và trạng thái giao dịch một cách an toàn

  • Thiết kế cơ chế xử lý thử lại, bồi hoàn và tạm giữ, có xét đến sự không nhất quán giữa DB và hệ thống thanh toán bên ngoài.

  • Truyền tải ổn định kết quả giao dịch bằng xử lý dựa trên sự kiện và mô hình Outbox

  • Triển khai máy trạng thái và cấu trúc vận hành để theo dõi và xử lý lại các giao dịch thất bại

  • Hoàn thiện hệ thống thanh toán ở mức trung cấp, kết nối các chức năng nạp tiền, rút tiền, phí, quyết toán và báo cáo.

  • Viết các truy vấn và báo cáo đối soát, xác minh dữ liệu quyết toán để phát hiện thiếu sót, trùng lặp và chênh lệch số tiền.

  • Kiểm thử các kịch bản đồng thời, sự cố và yêu cầu trùng lặp, đồng thời phân tích nguyên nhân bằng nhật ký và hoạt động giám sát.

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

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

  • Lập trình viên backend đã triển khai chức năng thanh toán nhưng còn thiếu tính idempotency và kiểm soát đồng thời

  • Nhà phát triển đang cố gắng giải quyết vấn đề trạng thái giao dịch DB khác với kết quả phê duyệt thanh toán bên ngoài

  • Lập trình viên mới bắt đầu đến trung cấp muốn hiểu sâu về transaction, mức độ cô lập và khóa thông qua các trường hợp thanh toán thực tế

  • Nhà phát triển muốn thiết kế một backend tài chính kết nối các báo cáo nạp tiền, rút tiền, quyết toán và đối soát

  • Nhà phát triển muốn xây dựng cơ chế thử lại giao dịch thất bại, xử lý bồi hoàn và cấu trúc theo dõi vận hành

  • Lập trình viên muốn nâng cao năng lực thiết kế hệ thống thực tế dựa trên các cơ sở dữ liệu quan hệ như PostgreSQL

Xin chào
Đây là Hong

Xác minh Inflearn

Xác minh sự nghiệp

13,084

Học viên

678

Đánh giá

185

Trả lời

4.8

Xếp hạng

33

Các khóa học

Tôi bắt đầu học phát triển phần mềm sau khi cảm thấy hứng thú với việc lập trình trong thời gian ở nhà nhàn rỗi. Hiện tại, tôi đang phụ trách phát triển máy chủ nền tảng tại Pangyo. Tôi tiếp tục hoạt động chia sẻ kiến thức vì muốn cung cấp cho các bạn phương pháp học mà tôi đã áp dụng, cùng những vấn đề khác nhau có thể gặp phải trong thực tế và cách giải quyết chúng.

 

Bài giảng không chỉ được tạo nên từ kiến thức của riêng tôi. Mọi bài giảng đều có những người đồng hành cùng tôi.

 

[Kinh nghiệm của người chia sẻ kiến thức]

[Trước đây] Nhà phát triển blockchain liên quan đến SandboxIP

[Cựu] nhà phát triển backend metaverse

[Hiện] Lập trình viên server đang dậm chân tại chỗ ở Pangyo

 

[Lịch sử phỏng vấn]

[Các câu hỏi khác]

[Trang web chính thức và mạng xã hội]

Thêm

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

Tất cả

48 bài giảng ∙ (10giờ 2phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

4.2

5 đánh giá

  • kslj82586229님의 프로필 이미지
    kslj82586229

    Đánh giá 11

    ∙

    Đánh giá trung bình 5.0

    5

    65% đã tham gia

    Thay vì giới thiệu khái quát về toàn bộ nội dung, bài giảng tập trung giải thích những vấn đề phát sinh trong quá trình triển khai từng phần. Vì vậy, sẽ không dễ để nắm bắt kiến trúc tổng thể, và có lẽ người học cũng cần tự ôn lại code ở một mức độ nhất định. Tôi nghĩ nếu biết sơ qua về blockchain thì sẽ dễ theo dõi bài giảng hơn. Thầy có nói rằng đây không phải là vấn đề thuộc lĩnh vực blockchain, nhưng code về cơ bản vẫn giả định bối cảnh blockchain, nên cần chú ý và nắm thật rõ những giải thích nhỏ được đưa ra trong quá trình học. Dù vậy, xét riêng về nội dung thì tôi khá hài lòng. Cách học này cũng tương tự với phương pháp học mà tôi hướng đến, nên tôi thấy rất ổn. Cảm ơn thầy vì bài giảng hay!

    • byeongseogi492130님의 프로필 이미지
      byeongseogi492130

      Đánh giá 12

      ∙

      Đánh giá trung bình 5.0

      5

      77% đã tham gia

      Có thể đây là những điều hiển nhiên, nhưng đây vẫn là một chủ đề rất hay để tôi nhìn lại kiến thức của bản thân. Tôi nhận ra mình còn thiếu nhiều kiến thức cơ bản hơn mình nghĩ, đồng thời cũng hiểu rằng có nhiều khía cạnh cần lưu ý khi nhìn từ góc độ thanh toán hơn mình tưởng. Cảm ơn bạn vì những nội dung hữu ích!

      • jhong
        Giảng viên

        Đúng là có những điều khá hiển nhiên nhỉ haha. Nhưng có vẻ đây cũng là chủ đề có nhiều điểm cần lưu ý tương ứng!! Cảm ơn bạn đã đánh giá tốt 😄

    • kasju72796603님의 프로필 이미지
      kasju72796603

      Đánh giá 3

      ∙

      Đánh giá trung bình 5.0

      5

      96% đã tham gia

      Tôi rất ấn tượng với cách đặt ra mục tiêu muốn triển khai dựa trên các bài kiểm thử, rồi từ đó xây dựng logic ứng dụng. - Vì vậy, tự nhiên cũng có xu hướng tạo ra nhiều tệp hơn một chút haha. Dù vậy, giảng viên còn hướng dẫn cả cách viết mã sao cho phù hợp với Clean Code. Đúng như tên khóa học, đây là một khóa học tập trung vào những yếu tố làm nên các tiêu chuẩn. Nội dung có thể khiến bạn cảm thấy hiển nhiên, thậm chí hơi quen thuộc. Nhưng đây là một chủ đề khiến tôi suy nghĩ lại về các mẫu thiết kế và cách thiết kế này. Tôi nghĩ đây là một khóa học hay, nơi bạn có thể cùng làm theo từng bước và nhìn nhận lại bản thân một lần nữa. Xin cảm ơn.

      • jhong
        Giảng viên

        Xin chào anh Hyunwoo!! Có lẽ vì khi làm về chủ đề này cần giả định các tình huống có thể phát sinh từng trường hợp ngoại lệ, nên bài giảng đã được quay theo thứ tự đó một cách tự nhiên ㅎㅎ Hy vọng anh thấy hữu ích, và trong thời gian tới tôi sẽ tiếp tục mang đến những nội dung hay hơn. Xin cảm ơn!

    • achoi68339754님의 프로필 이미지
      achoi68339754

      Đánh giá 4

      ∙

      Đánh giá trung bình 5.0

      5

      75% đã tham gia

      Trong buổi livestream, anh Hong đã trực tiếp chia sẻ rằng: "Đừng để AI khiến bạn mất tự tin, hãy trở thành người biết cách tận dụng chính AI" Xét từ góc độ đó, bài giảng này thực sự rất hữu ích ạ haha Trước khi xem bài giảng này, nếu sử dụng AI thì có lẽ tôi sẽ yêu cầu như thế này: - "Hãy tạo API xử lý đơn hàng có tích hợp PG" Nhưng nhờ những nội dung trong bài giảng này, tôi đã trưởng thành và hiểu biết hơn, nên giờ có lẽ tôi có thể yêu cầu như thế này: - "Tôi định tích hợp PG, nhưng cần đảm bảo cơ chế thử lại và tính idempotency. Tôi muốn phòng tránh việc thanh toán trùng lặp. Ngoài ra, những điểm cần cân nhắc từ góc độ domain bên ngoài (trong bài giảng này là blockchain) là ~~; hãy áp dụng cả góc độ này nữa" Tôi nghĩ mình đã trở thành người có thể đặt câu hỏi một cách mạch lạc hơn rồi haha Cảm ơn vì nội dung tuyệt vời!

      • jhong
        Giảng viên

        Ra là bạn đã xem buổi live session rồi haha, ngại quá. Lần sau chúng ta lại cùng làm live session nhé. Với mình, đó cũng là một khoảng thời gian rất bổ ích. Chúc bạn một ngày tốt lành!! 😄

    • beat67448333님의 프로필 이미지
      beat67448333

      Đánh giá 1

      ∙

      Đánh giá trung bình 1.0

      Đã chỉnh sửa

      1

      25% đã tham gia

      Bình thường tôi không hay viết những bài như thế này, nhưng với tư cách là người mới tìm hiểu về blockchain, tôi cảm thấy nội dung bài giảng hơi khó. Bài giảng có nhắc đến các thuật ngữ và thư viện liên quan đến blockchain, nhưng khi chưa hiểu rõ từng thứ có vai trò gì mà đã nghe toàn bộ quy trình thì tôi khó tiếp thu được nội dung. Tài liệu được trình chiếu trong lúc giảng chỉ ghi “Máy chủ phê duyệt giao dịch bằng khóa cá nhân”, nhưng chỉ với thông tin này thì tôi khó nhớ và khó hiểu những tình huống khác nhau mà giảng viên đề cập. Như tôi đã nói trong phần câu hỏi, tôi hoàn toàn hiểu rằng giảng viên muốn minh họa nhiều tình huống khác nhau. Tuy nhiên, trong công việc thực tế, khi giải thích một chức năng xa lạ cho đồng nghiệp, chúng ta thường bắt đầu bằng việc nêu rõ chức năng đó cần thiết vì sao và cần biết những bối cảnh nào, đúng không? Sau đó giải thích cách chức năng vận hành trên thực tế thì người nghe lần đầu cũng dễ theo dõi hơn. Tôi nghĩ nếu bài giảng được trình bày theo trình tự đó thì những người mới học blockchain như tôi sẽ dễ hiểu hơn nhiều. Mong giảng viên xem lại trình tự bài giảng và tài liệu từ góc độ này. Dạo gần đây có thể dùng AI để tìm hiểu đủ thứ, nên khi đăng ký một khóa học trả phí, tôi kỳ vọng giảng viên sẽ trực tiếp giải thích từng bước từ những kiến thức cơ bản. Thế nhưng, tôi có cảm giác phần lớn mã nguồn và tài liệu bài giảng đều được soạn bằng AI, nên tôi khá thất vọng và viết bài đánh giá này.

      • jhong
        Giảng viên

        Xin chào anh/chị --, cảm ơn anh/chị đã để lại nhận xét. Đúng như anh/chị đã nói, tôi cũng nghĩ nội dung vẫn còn khá nhiều điểm chưa tốt... Điều tôi có phần chủ ý là muốn giúp anh/chị hiểu về chủ đề Dual Write, ngay cả khi chưa hiểu rõ về blockchain!! Vì vậy, tôi không đi sâu vào blockchain. - Mục tiêu của tôi là chỉ giải thích đơn giản ở một vài chỗ trong bài. Lý do tôi chọn lĩnh vực blockchain rất đơn giản: lĩnh vực này phức tạp hơn nhiều và có nhiều điều cần cân nhắc hơn so với các máy chủ API xét từ góc độ MSA!! - Nội dung càng khó thì càng khó hiểu, nhưng một khi đã hiểu được thì anh/chị sẽ học được nhiều điều hơn. Có lẽ vì vậy mà tôi đã tự nhiên giảm thiểu nội dung về blockchain. - Tôi nghĩ phần giới thiệu khóa học cũng đã được viết như vậy có chủ ý, nhưng có vẻ đội ngũ chúng tôi diễn đạt chưa tốt ㅠㅠ Tôi xin lỗi vì dù nói thế nào cũng không thể làm anh/chị hài lòng, mà chỉ khiến anh/chị thất vọng... Trong thời gian tới, chúng tôi sẽ cố gắng mang đến những nội dung hữu ích hơn. - Chúng tôi có nhờ AI hỗ trợ làm tài liệu, nhưng về cơ bản nội dung được triển khai dựa trên những gì chúng tôi tự tổng hợp; còn phần code thì hoàn toàn không nhờ AI hỗ trợ...!! Mong anh/chị lưu ý!

    Khóa học khác của Hong

    Hãy khám phá các khóa học khác của giảng viên!

    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, kết thúc sau 21:01:41 ngày

    7.721 ₫

    59%

    3.101.392 ₫