inflearn logo

Distributed Transaction Patterns from an MSA Perspective, as Explained by a Kakao Interviewer

Learn the SAGA transaction management technique for maintaining data consistency in distributed environments through a hands-on approach. You will configure three microservices using Spring Boot and Docker, and implement both Orchestration and Choreography patterns using Kafka and MySQL. Through this course, you will master core concepts applicable to real-world scenarios, including the operational principles of distributed transactions, designing compensating transactions, and handling fault recovery.

(4.9) 23 reviews

528 learners

Level Basic

Course period Unlimited

Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA
Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA

Reviews from Early Learners

Reviews from Early Learners

4.9

5.0

파이리이2

100% enrolled

It was a great opportunity to study distributed transactions!

5.0

keny

92% enrolled

I personally think this might be one of the most beneficial lectures on Inflearn. The content was so substantial that I was able to learn a lot from it. Thank you.

5.0

개발에 미친자

92% enrolled

I really enjoyed the course. I especially loved how you showed numerous diagrams at the beginning while explaining the overall architecture and its details. Any knowledge gaps or concepts that needed organizing could be checked through the separate course summary files. The Inflearn scripts were also helpful when needed. Also, the review process where you explained everything step by step again, along with the realistic stories and practical workplace perspectives, was extremely beneficial. I really enjoyed it. Thank you.

What you will gain after the course

  • Revealing the Secrets of Designing Fault-Tolerant Distributed Transactions

  • Orchestration vs. Choreography Patterns: When and how to use them in practice?

  • Real-time Event-Driven SAGA Transactions Implemented with Kafka

  • Building a Reliable Compensating Transaction Architecture with Spring Boot

  • Hands-on Microservices Transaction Practice: Building Directly with Docker

How should we manage ACID in an MSA environment? 🤔

  • The content below is an actual conversation.

😁 Kakao Interviewer (Developer) : XX (Hong), it would be good to study distributed transactions. Do you know about them?

😄 Hong : You're talking about concepts like local transactions or compensatory transactions, right?

😁 Kakao Interviewer (Developer) : Yeah, I'm talking about the SAGA pattern. I always ask about this when I'm interviewing, but since so many people don't know it, I thought of you and decided to ask.

😄 Hong : I've heard of it, but I haven't implemented it at the core level. I only know the concept because I haven't gone as far as the so-called Database per Service perspective

😁 Kakao Interviewer (Developer) : Then I'll organize the content related to this topic and let you know. Let's go through it together while also covering it in the lecture.

😄 Hong : Lol, great. Then it'll be a piece of cake when I apply to Kakao later. Let's go for it.

How do you handle the ACID perspective in an MSA environment?? 🤔

If you implement the Database per Service perspective within a relationship of numerous service applications, how do you manage the state of tasks and ensure the corresponding transactions in this situation?

The answer lies in the SAGA pattern. To perform and process a single task, communication with numerous services is required, and in that process, many transactions will occur. From the perspective where each service has its own database, a single task will be executed through a pattern where each operation performs a local transaction and executes a compensating transaction in case of a failure. I hope you gain insights into how to implement these distributed transaction functions while watching this lecture. 🚀

Characteristics of this course

📌 A course structured based on the know-how and interview questions of actual Kakao interviewers (developers)

  • This course is based on actual questions asked by Kakao interviewers (developers) during interviews. Rather than simply providing fixed answers for the interview, it is designed to help you respond to any question regarding the SAGA pattern.

📌 Course structure featuring numerous diagrams, lecture summaries, and source code

  • This is not just a lecture explained with words; we enhance learning efficiency by providing actual source code, diagrams, sequence diagrams, and additional summary files of the lecture content.


📌 The shortcut from junior to senior..! Distributed transaction management from an MSA perspective

  • Through this lecture, you can see what problems exist in an MSA environment and how to solve them accordingly, allowing you to clearly learn the specific advantages and disadvantages.


I recommend this to the following people 👨‍🏫

🎯 Those who are non-major developers but want to challenge themselves with high-traffic design

🎯 Those who have heard of MSA and SAGA but did not know the specific design methods

🎯 Backend developers at startups or large enterprises who are concerned about traffic scalability and fault tolerance

🎯 Developers who want to go beyond simple microservices and design complex distributed transactions

Recommended materials to check out 🚀

The people creating the lecture together 🤭

⚠️ Don't miss this opportunity to get a glimpse into the perspectives of skilled developers and interviewers!

Notes

Practice Environment

  • MySQL

    • It is configured using Docker.

  • Spring, Spring Boot

    • Version 3.x is used (3.2)

  • Java

    • Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)

  • docker, docker-compose

    • Docker version 28.0.0, build f9ced58158

    • Docker Compose version 2.33.1

  • IDE

    • IntelliJ IDEA

  • OS

    • Apple M3 Air

We are running an open chat room to help you prepare for your career. We look forward to your interest!

Recommended for
these people

Who is this course right for?

  • A server developer struggling with data consistency issues between microservices

  • Backend engineers who want to learn distributed transaction design through practical code

  • Developers who want to take their Kafka-based architecture to the next level

  • Learners who want to master the practical SAGA pattern with Spring Boot

  • Tech leaders and architects who want to design stable, large-scale systems

Hello
This is Hong

7,492

Learners

461

Reviews

142

Answers

4.7

Rating

25

Courses

Introduction

I started studying development after finding an interest in it while idling at home, and I am currently in charge of platform server development in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in practice.

 

These lectures are not created solely through my own knowledge. Every lecture is made together with others.

 

Instructor Experience

[Former] Blockchain developer related to Sandbox IP

[Former] Metaverse Backend Developer

[Current] A veteran server developer in Pangyo

 

Interview History

Other Inquiries

  • unduck2022@gmail.com

More

Curriculum

All

24 lectures ∙ (5hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

23 reviews

4.9

23 reviews

  • sgh1939님의 프로필 이미지
    sgh1939

    Reviews 8

    Average Rating 5.0

    Edited

    5

    75% enrolled

    It's theory-focused. I'd say it's about 80% theory and 20% practice. It doesn't seem suitable for those who want to learn theory and see real-world source code examples. However, it's suitable for those who know nothing about patterns.

    • jhong
      Instructor

      Hello, Sim Gyu-hwan! Thank you for leaving a review. I kept the actual implementation code simple because I thought spending time on basic coding wouldn't be very beneficial for you all, but next time I'll prepare content that's closer to real-world practice. Thank you for the positive feedback!!

  • cchoii님의 프로필 이미지
    cchoii

    Reviews 12

    Average Rating 5.0

    5

    38% enrolled

    I'm helping create this course and work as a server developer at Kakao. Actually, I wanted to hide the fact that I'm an interviewer... 😭😭 But I thought this would be such a great topic to cover, so I decided to join this course. As I mentioned, when I actually conduct interviews at Kakao, I'm not particularly curious about things from a programming perspective. Most of my questions focus on whether someone can do architectural design, and I consider `what kind of concepts this person can come up with` to be extremely important. Various problems can arise from this perspective, and one of those factors is distributed transactions. That's why I think this course is all the more beneficial. If you can answer these kinds of questions after taking this course, I think you'll have learned something truly meaningful. 1. Please tell me about the two patterns of SAGA (Choreography VS Orchestration) 2. Please tell me about the differences and pros/cons of these two patterns. I'm particularly curious about throughput and the problems that come with it. 3. Do you know the concept of local transactions?? (If you don't know, I'll explain it) Then how can distributed transactions be managed in relation to these transactions?? 4. Please tell me everything you know about distributed transactions in general. I'm curious. 5. Do you know what the Database per Service perspective is?? These are examples of questions I actually ask when I go into interviews. If you know about these areas and can answer them, it would be a great help. Please show a lot of interest in the course. Thank you!

    • jhong
      Instructor

      Let's continue creating even better lectures together 😆😆 Thank you!

  • yoonkr232897님의 프로필 이미지
    yoonkr232897

    Reviews 3

    Average Rating 5.0

    5

    100% enrolled

    Thank you so much for the informative lecture.

    • feel0006171581님의 프로필 이미지
      feel0006171581

      Reviews 2

      Average Rating 5.0

      5

      100% enrolled

      It was a great opportunity to study distributed transactions!

      • jhong
        Instructor

        Hello Pyrii2! Thank you for leaving a review. I'll make sure to provide even better lectures in the future. Have a great day!!

    • sdl1355126님의 프로필 이미지
      sdl1355126

      Reviews 14

      Average Rating 5.0

      5

      92% enrolled

      I personally think this might be one of the most beneficial lectures on Inflearn. The content was so substantial that I was able to learn a lot from it. Thank you.

      • jhong
        Instructor

        Thank you so much for leaving such a Kind review, keny!! I will continue to provide even more beneficial lectures in the future!

    Hong's other courses

    Check out other courses by the instructor!

    Similar courses

    Explore other courses in the same field!

    $59.40