Here's why implementing a Payment System can be so hard

preview_player
Показать описание
======⚡⚡⚡======

Designing and building an in-house Payment System is not trivial. In includes many components that communicate asynchronously in an event-driven manner, usually with Kafka, meaning there are many different ways the system can malfunction. We're going to cover the major components of a system, what reconciliation is, how to process slow requests with long-polling and web hooks, as well as talk about idempotency.

And don't forget to subscribe for more videos like this 😊
Рекомендации по теме
Комментарии
Автор

Thanks. Learned a new concept today... reconciliation

Finn-jppn
Автор

Have you already tried working with payments? What was your experience? 🤓

SoftwareDeveloperDiaries
Автор

Great video, thanks, I wasn’t aware of the reconciliation! I believe any asynchronous process running on a distributed system that can not rely on eventual consistency we will face some of these challenges as well

caiopenhalver
Автор

A bit confused with the reconciliation process. If I understand it correctly, this is basically eventual consistency, because eventually all of these individual DB will be consistent. But in the example, I think it would not be advisable to go down that road, as in, what to do if the DBs are not in sync, how much money does the user have, should he be allowed to purchase?

Aleks-fpkq
Автор

Can you explain a bit more about the ledger and user wallet? First question: Are we going to store user credit/debit card information in the ledger? In the user wallet, we will store the user transactions (amount, discounts, etc.). Second question: How do we reconcile between these two modules, the ledger and the user wallet?

ShujaatAli-sxou
Автор

Cool video! Thanks for sharing! 🎉 Just one notice - what about having API gateways in front of the core services, like the payments service, the transaction service, etc.? I think they are necessary for filtering the requests and for auth when your internal services communicate with 3rd party providers like the PSP. What do you think about that?

kdrenski
Автор

It doesn't really feel idempotent to return 429 instead of the actual previous operation result - 200

the-unspectd
Автор

love it, what is the program name you're using for the sketching and diagrams

cse
Автор

Why do we need a user wallet service? Technically we don't hold transactions of consumers

audiobooks