강의

멘토링

커뮤니티

Programming

/

Back-end

Build a robust payment system

Practical Payment System Development Course, learn by code, and cover the knowledge needed to implement a real system.

(4.3) 28 reviews

482 learners

  • yjm9505168574
실습 중심
결제기능
결제기능구현
backend
Spring
DBMS/RDBMS
payments
Spring Boot

Reviews from Early Learners

What you will gain after the course

  • Payment system design considering reliability

  • Basic Principles and Components of Payment Systems

  • Transaction Processing and Concurrency Control

  • Understanding the Payment Process

💲 "Talk is cheap. Show you the code."

This course takes a practical approach and is structured to make core concepts easy to understand, including:

  • Payment System Design

  • Implementing payment authorization functionality and error handling

  • Implementation of a payment message system using Apache Kafka

  • Concurrency Control Using Optimistic Locking

  • How to manage errors using Dead Letter Queue

  • Ensuring message processing and delivery through Kafka transactions

  • Issuing payment approval message using Transactional Outbox Pattern

  • How to use Kafka reliably

  • Payment recovery service using Bulk Head Pattern and parallel processing

  • Building a Ledger Service using the Double-Entry Ledger technique


This course is intended for backend developers with basic programming knowledge and provides practical skills to understand and build the key functions of a payment system from start to finish . The goal of the course is not to impart theoretical knowledge, but to apply it to real-world applications. The goal is to improve your problem-solving and project application skills. Therefore, after completing the course, you will be able to design and implement your own payment system, as well as improve the reliability and performance of existing systems. no see.

💡 Reliable Payment Systems: From Basics to Practice: The Complete Guide

  • Learn everything from the fundamentals of payment system design and implementation to reliable message handling techniques.

  • Learn how to apply essential strategies for payment solutions in practice, including Kafka, Wallet Service, and concurrency control.

📚 Learn about these things

1. Payment system design

Clarify the definition and core requirements of the payment system and look at the entire system from a high-level perspective. In the process of designing the structure of the payment system to be developed, deeply consider the database selection, communication style, reliability of message delivery, and methods of ensuring processing. This will help learners understand the inner workings of a payment system and gain insight into the various technical decisions that need to be considered during a practical implementation.

2. Implementing payment approval function and error handling

We will practice the implementation process of payment approval function through Toss Payments integration. In this lecture, you will learn how to implement Retry, a retry mechanism to overcome errors that may occur during the payment process. In addition, you will learn how to implement Retry, a retry mechanism to overcome errors that may occur during the payment process. We will cover identifying different types of errors and error handling strategies to deal with them.

3. Payment Recovery Service

The Payment Recovery Service lecture focuses on the mechanism for recovering payment events that fail due to unhandled or unknown exceptions. In this lecture, you will learn how to apply the Bulk Head pattern to improve the reliability of the system. In addition, We also discuss strategies for improving the performance of payment system recovery functions by leveraging parallel processing techniques.

4. Issue payment approval message

We will focus on how to publish event messages using Apache Kafka after successful payment approval. In this lecture, you will learn how to apply the Transactional Outbox Pattern to ensure that event messages are published unconditionally. Through this process, , you will learn practical techniques and strategies for implementing consistent and reliable data communication between payment systems and other systems.

Things to note before taking the class

Practice environment

  • Operating System and Version (OS): All OS are supported, including Windows, macOS, and Linux.

  • Tools used: Intellij, Datagrip, Kotlin, Docker, Toss App, Git, Confluent Kafka Cloud

  • PC specifications: PC with basic specifications that can access the Internet


Learning Materials

  • Learning material format provided: Notion

  • Volume and Capacity: Learning materials provided for each section

Player Knowledge and Notes

  • This course develops an original curriculum by applying the theory of Payment System design from Alex Xu's Systems Design Interview: An Insider's Guide: Volume 2 and applying it to real-life cases.

  • We utilize technologies such as Kotlin, Spring Webflux, Spring Data R2DBC, Spring Data JPA, MySQL, and Apache Kafka. You can understand the lecture without prior knowledge of these technologies.


Recommended for
these people

Who is this course right for?

  • Backend developers who are curious about payment systems

  • Students who want to do a real project

Need to know before starting?

  • Kotlin

  • Spring Webflux

  • Spring Data Jpa

  • Spring Data R2DBC

  • MySQL

  • Apache Kafka

Hello
This is

989

Learners

60

Reviews

38

Answers

4.4

Rating

3

Courses

안녕하세요.

저는 개발자면서 교육자로 신뢰할 수 있는 강의를 만들려고 노력하고 있습니다.

강의를 만들 땐 필요한 지식과 기술을 군더더기 없이 전달하는 정보 밀도 높은 콘텐츠를 제공하려고 합니다.

제가 관심있는 분야, 정말 의미 있다고 믿는 영역에만 강의를 만들며, 누구나 만들 수 있는 강의는 만들지 않습니다.

추가로 커리어리에서도 유용한 글들을 쓰고 있습니다. 

- (前) 카카오엔터프라이즈 소프트웨어 엔지니어

- (前) 카카오 Ground X 소프트웨어 엔지니어

Curriculum

All

21 lectures ∙ (7hr 8min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

28 reviews

4.3

28 reviews

  • kms920106님의 프로필 이미지
    kms920106

    Reviews 24

    Average Rating 4.6

    5

    62% enrolled

    I'm embarrassed to say this, but I'm a career employee. I was in charge of a delivery app brokerage service at my previous company, and I had domain knowledge of order and payment services, so I thought I would be able to take this course easily. But no.. It's very difficult.. It's not beginner level.. The order system at my previous company was ridiculous.. It definitely feels like I'm learning a higher version of a payment service in terms of technology.. As in the review below (Ahyo), knowledge of Kotlin, reactive, hexagonal architecture, and Kafka is required as a basic base, and if you know Java, SpringBoot MVC, you might be very busy following the code. However, I think that this course is something that you should keep watching until you properly understand it in order to build your capabilities in payment services. I think it's very important.. (I'm a noob so it's very difficult for meㅠㅠ) After completing this lecture, if I have time, I should study it properly again while refactoring it to the Java and Spring MVC patterns that I originally knew, and definitely acquire the knowledge.. I feel mentally exhausted after meeting that challenger in LoL I feel motivated to study harder

    • yjm9505168574
      Instructor

      Thank you for the great review! It's a familiar nickname. I think I should have briefly explained the nuclear accident architecture, Kotlin, and reactive to make it easier to follow the lecture. I thought a lot about whether to include this explanation, but I didn't include it because I thought it would be too much of a hassle. However, I didn't use difficult Kotlin grammar or anything, so I think it won't be too difficult! I'll try harder to explain it more kindly and easily in the next lecture. Thank you for the good feedback~~

  • xpdpfal5210님의 프로필 이미지
    xpdpfal5210

    Reviews 1

    Average Rating 4.0

    4

    19% enrolled

    This lecture is perfect in terms of topic, content, and code... It's such a shame that it's hexagonal architecture. If it weren't for this, I'd give it 5 stars... I'm not even sure if hexagonal is a necessary architecture. ㅠㅠ Rather, the payment logic was harder to understand... I couldn't concentrate well because it was a lecture about payment. If it weren't for this, it would be perfect. The lecture materials are organized really neatly, so they're easy to understand, and I like that they put a lot of thought into editing. Hexagonal... If only this were excluded, it would be 100,000 points... I'm looking forward to the next lecture!

    • blutics님의 프로필 이미지
      blutics

      Reviews 16

      Average Rating 4.2

      3

      71% enrolled

      Although it is said that it is not a simple reuse rearrangement, it is a bit disappointing that it does not properly explain the double-entry ledger or the basic ledger/wallet concept. In many ways, it seems like a topic that is a bit off topic for payment systems.

      • yjm9505168574
        Instructor

        Should I have introduced a more detailed history, such as why the Ledger System came out? I think I have explained the core parts of the Double Ledger and Wallet systems sufficiently. I don't think you have heard the Ledger and Wallet part, but I don't understand what you said about simple rearrangement/reuse. I would like to ask if there are many concerns about actually implementing the theory.

      • I am not saying that how it is implemented is important. What I want to say is that if you simply look at the fields, debit or credit, and the table name uses the concept of ledger as a ledger, and the concept of double entry, which is the name of double-entry bookkeeping, then this part needs to be explained. Don't you need to understand double-entry bookkeeping to some extent and explain how to implement this double-entry bookkeeping to reliably track and manage payments? Isn't this understanding the domain and understanding the definition and requirements of the domain? Isn't this the right way to properly explain this payment domain? In this lecture, you present a code that operates the general payment process reliably and show how to manage it as an event with Kafka and the process of managing transactions in this process. In my opinion, the payment domain is not the main focus, but Kafka and transaction management are the main focus, and these are simply shown in the payment process. It's not that the instructor was not prepared enough or the lecture content was not sincere. I paid 100,000 won hoping that it would solve my curiosity about the payment domain, but I feel like I didn't get much out of it, so I left a sharp review. I left 2 points in anger, but I changed it to 3 points and am leaving.

    • syh8088님의 프로필 이미지
      syh8088

      Reviews 7

      Average Rating 5.0

      5

      90% enrolled

      It was great to be able to gain good knowledge through a solid payment service! Personally, data consistency is a very important part of payment service, so it was great to be able to acquire various technologies so that it is not missed. It would have been better if it had been done in Java, and the focus was on a 'solid payment service', but there were some difficult parts about introducing spring webflux. I think it would have been difficult for students who do not know spring webflux to approach it.

      • nhy12224380님의 프로필 이미지
        nhy12224380

        Reviews 3

        Average Rating 5.0

        5

        62% enrolled

        $114.40

        yjm9505168574's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!