inflearn logo

Practical Financial Backend Engineering from a Toss Developer Serving 30 Million MAU: Outbox, Idempotency, and Dual Write

For developers blocked by double payments and discrepancies between external payments and databases, I design and implement robust settlement systems based on hands-on experience with Toss’s backend.

(4.2) 5 reviews

250 learners

Level Beginner

Course period Unlimited

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

Reviews from Early Learners

4.2

5.0

배현우

96% enrolled

I was impressed by how you set goals for what you wanted to implement based on tests, then used those tests to build the application logic. - As a result, you do tend to end up with quite a few files, haha. You also explain how the code itself follows the principles of Clean Code. As the title suggests, this course focuses on the elements that set the standards. Some of the content may seem obvious or predictable. Even so, it’s a topic that made me think about these patterns and designs once again. I think it’s a great course that lets you follow along step by step and reflect on yourself along the way. Thank you.

5.0

두쫀쫀쿠

75% enrolled

Hong said this directly during the live session: "Don’t let AI undermine your confidence. Become someone who can make use of AI itself." From that perspective, I found this course really useful haha. Before taking this course, I think I would have asked AI something like: - "Create an order API that processes payments by integrating with a payment gateway." But thanks to what I learned in this course, I’ve grown and learned more, so now I think I could ask something like: - "I’m going to integrate with a payment gateway, so make sure to handle retries and idempotency. I want to guard against duplicate payouts. Also, ~~ are things I need to consider from the perspective of an external domain (blockchain in this course), so please take that perspective into account too." I feel like I’ve become someone who can put together questions in a more structured way haha. Thank you for the great content!

5.0

이병석

77% enrolled

This may be obvious to some, but it was a great topic for reviewing my own knowledge. It made me realize again that my fundamentals are weaker than I thought, and that there are more things to consider and be careful about when it comes to payments than I expected. Thank you for the great content!

What you will gain after the course

  • Defines the transaction status and data consistency requirements for the payment and settlement domain.

  • Prevent duplicate payments and duplicate processing with idempotency keys and duplicate request prevention logic.

  • Safely modify balances and transaction statuses by applying transaction isolation levels and concurrency control.

  • Design retry, compensation, and pending handling to account for inconsistencies between the DB and the external payment system.

  • Reliably deliver transaction results through event-driven processing and the outbox pattern.

  • Implement a state machine and operational structure to track and reprocess failed transactions.

  • Complete an intermediate-level payment system connecting deposits, withdrawals, fees, settlements, and reports.

  • Write reconciliation and validation queries and reports to detect missing records, duplicates, and amount discrepancies.

  • Test concurrency, failure, and duplicate request scenarios, and analyze the causes using logs and monitoring.

Recommended for
these people

Who is this course right for?

  • A backend developer who implemented payment functionality but lacks idempotency and concurrency control.

  • A developer trying to resolve an issue where the DB transaction status differs from the external payment approval result

  • Beginner to intermediate developers who want an in-depth understanding of transactions, isolation levels, and locks through practical payment examples

  • A developer looking to design a financial backend connected to deposit, withdrawal, settlement, and reconciliation reports

  • A developer looking to build a structure for retrying failed transactions, processing compensation, and operational tracking

  • Developers looking to build practical system design skills based on relational databases such as PostgreSQL

Hello
This is Hong

Inflearn Verified

Career Verified

13,124

Learners

679

Reviews

185

Answers

4.8

Rating

33

Courses

I started studying development after becoming interested in it while idling around at home, and I am currently responsible for platform server development in Pangyo. I continue sharing my knowledge because I want to provide you with the methods I used to study, as well as various issues you may encounter in practice and their solutions.

 

The courses are not created solely from my own knowledge. Every course is made possible with the help of others.

 

[Knowledge Sharer Experience]

[Former] Blockchain developer specializing in Sandbox IP

[Former] Metaverse backend developer

[Current] A server developer stagnating in Pangyo

 

[Interview History]

[Other Inquiries]

[Official Website and Social Media]

More

Curriculum

All

48 lectures ∙ (10hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

5 reviews

4.2

5 reviews

  • kslj82586229님의 프로필 이미지
    kslj82586229

    Reviews 11

    ∙

    Average Rating 5.0

    5

    65% enrolled

    Rather than providing a broad overview, the course focuses on explaining the issues that come up as you implement things step by step. Because of that, it can be difficult to understand the overall structure, and I think you’ll need to review some of the code on your own as you go. I also think it helps to have at least a basic understanding of blockchain. The instructor said the problems aren’t specific to the blockchain domain, but the code does assume a blockchain context, so it’s important to pay attention to the small explanations given along the way. Even so, I’m quite satisfied with the content itself. It was a good fit for me because the approach was similar to the way I like to study. Thank you for the great course!

    • kasju72796603님의 프로필 이미지
      kasju72796603

      Reviews 3

      ∙

      Average Rating 5.0

      5

      96% enrolled

      I was impressed by how you set goals for what you wanted to implement based on tests, then used those tests to build the application logic. - As a result, you do tend to end up with quite a few files, haha. You also explain how the code itself follows the principles of Clean Code. As the title suggests, this course focuses on the elements that set the standards. Some of the content may seem obvious or predictable. Even so, it’s a topic that made me think about these patterns and designs once again. I think it’s a great course that lets you follow along step by step and reflect on yourself along the way. Thank you.

      • jhong
        Instructor

        Hi Hyunwoo! Since this topic involves working through scenarios where each edge case could arise, the lectures were naturally filmed in that order, haha. I hope you found them useful, and I’ll be back with even better content in the future. Thank you!

    • byeongseogi492130님의 프로필 이미지
      byeongseogi492130

      Reviews 12

      ∙

      Average Rating 5.0

      5

      77% enrolled

      This may be obvious to some, but it was a great topic for reviewing my own knowledge. It made me realize again that my fundamentals are weaker than I thought, and that there are more things to consider and be careful about when it comes to payments than I expected. Thank you for the great content!

      • jhong
        Instructor

        It’s pretty obvious to some extent, haha, but it seems like this is a topic with a lot of things to be careful about!! Thanks for the kind review 😄

    • achoi68339754님의 프로필 이미지
      achoi68339754

      Reviews 4

      ∙

      Average Rating 5.0

      5

      75% enrolled

      Hong said this directly during the live session: "Don’t let AI undermine your confidence. Become someone who can make use of AI itself." From that perspective, I found this course really useful haha. Before taking this course, I think I would have asked AI something like: - "Create an order API that processes payments by integrating with a payment gateway." But thanks to what I learned in this course, I’ve grown and learned more, so now I think I could ask something like: - "I’m going to integrate with a payment gateway, so make sure to handle retries and idempotency. I want to guard against duplicate payouts. Also, ~~ are things I need to consider from the perspective of an external domain (blockchain in this course), so please take that perspective into account too." I feel like I’ve become someone who can put together questions in a more structured way haha. Thank you for the great content!

      • jhong
        Instructor

        Oh, you watched the live session haha. I’m embarrassed! Let’s do another live session together sometime. I found it really useful too. Have a great day!! 😄

    • beat67448333님의 프로필 이미지
      beat67448333

      Reviews 1

      ∙

      Average Rating 1.0

      Edited

      1

      25% enrolled

      I don’t usually leave reviews like this, but as someone who’s new to blockchain, I’m finding the course content somewhat difficult. The course introduces blockchain-related terms and libraries, but without knowing what each one does, it’s hard to follow the overall flow and take in the material. The slides shown during the explanations only say, “The server authorizes the transaction using a private key.” That alone makes it difficult to remember or understand the various scenarios the instructor discusses. As I mentioned in the Q&A, I understand that the instructor wanted to show a range of scenarios. But when explaining an unfamiliar feature to a colleague at work, you usually start by explaining why the feature is needed and what background knowledge is required. Then, once you explain how it works in practice, it’s much easier for someone hearing about it for the first time to follow along. I think it would have been much easier to understand if the course had followed that order for people like me who are new to blockchain. I hope you’ll take another look at the course structure and materials from this perspective. These days, you can look up all kinds of things using AI, so I was expecting a paid course to have the instructor personally explain things step by step, starting with the basics. Instead, I got the impression that most of the code and course materials had been written with AI, which left me disappointed. That’s why I’m leaving this review.

      • jhong
        Instructor

        Hello, --. Thank you for sharing your feedback. I do think there are quite a few shortcomings, as you pointed out... What I was trying to do was help you understand the topic of Dual Write, even if you weren’t very familiar with blockchain!! So I didn’t cover blockchain in depth. - My goal was to explain it briefly here and there. The reason I chose the blockchain domain is simple: it’s much more complex and involves more things to consider than API servers from an MSA perspective!! - The harder the material is, the more difficult it is to understand, but you can learn more from it once you do. As a result, I think I naturally kept the blockchain-related content to a minimum. - I thought we had intentionally written the course description to reflect that, but it seems our team didn’t express it well enough. :’( I’m sorry that nothing I say seems to satisfy you, --, and that I’ve only disappointed you... I’ll work harder to provide more useful content going forward. - We did get some help from AI with the materials, but the content was primarily organized by our team, and we didn’t use any AI assistance for the code at all...!! Please keep that in mind!

    Hong's other courses

    Check out other courses by the instructor!

    Similar courses

    Explore other courses in the same field!

    Limited time deal ends in 08:44:12

    $47.30

    59%

    $117.70