# Saga is too complex?

## Метаданные

- **Канал:** CodeOpinion
- **YouTube:** https://www.youtube.com/watch?v=KFbJOt4dDOk
- **Дата:** 15.05.2026
- **Длительность:** 1:13
- **Просмотры:** 2,436

## Описание

Are your workflows constantly getting stuck in a "Pending" state? In a distributed system, we often lean on Sagas to coordinate complex processes, but they have a fatal flaw: a Saga is not the source of truth.

In this video, I’ll show you why treating a Saga as the ultimate authority leads to data inconsistency, especially when dealing with external API timeouts and "uncertain" failures. Using a common checkout and payment example, we’ll explore why adding more edge-case logic to your Saga isn’t the answer. Instead, the solution is Reconciliation.

🔗 Kurrent
https://kurrent.io

🔔 Subscribe: https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw?sub_confirmation=1

💥 Join this channel to get access to a private Discord Server and any source code in my videos.

🔥 Join via Patreon
https://www.patreon.com/codeopinion

✔️ Join via YouTube
https://www.youtube.com/channel/UC3RKA4vunFAfrfxiJhPEplw/join

📝 Blog: https://codeopinion.com
👋 Twitter: https://twitter.com/codeopinion
✨ LinkedIn: https://www.linkedin.com/in/dcomartin/
📧 Weekly Updates: https://mailchi.mp/63c7a0b3ff38/codeopinion

0:00 Intro
1:12 Saga
3:37 Reconcile

## Содержание

### [0:00](https://www.youtube.com/watch?v=KFbJOt4dDOk) Intro

So you built out an elaborate system that has commands, queues, an event-driven architecture, retries, timeouts, and most importantly, compensating actions. But do we really? Cuz we get a call from support that we have this order where the payment's pending, and it's been pending for 48 hours now. So you look into it more and see that the payment provider did charge the customer, but our system shows that the payment didn't go through. So which is true? Clearly, the payment provider. Now, you might think a saga is the answer to this problem, and it's not exactly. A saga is great for coordinating workflow, but it's not the source of truth. It can tell you, "What step am I on? What message did I receive? What command should I send next? " What you really want as a solution in this situation, alongside a saga, is reconciliation. You want to know what should be true, what is actually true, and what corrective actions, compensating actions, can you take that are safe, that you can apply. Reconciliation is not a cleanup job. It's about consistency. I get the sense there's this feeling, well, "I have to run this job or because of timeout and reconcile with some third-party system when everything should have magically always be consistent. " It's not. It's not going to be. There's nothing wrong with doing reconciliation. It's not some

### [1:12](https://www.youtube.com/watch?v=KFbJOt4dDOk&t=72s) Saga

cleanup job.

---
*Источник: https://ekstraktznaniy.ru/video/51615*