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

Поділитися
Вставка
  • Опубліковано 24 бер 2024
  • Check out Cryptomus: cryptomus.com/?...
    Cryptomus on Telegram - t.me/+eo6zMdgekJRhNzcy
    ======⚡⚡⚡======
    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.
    ☕ Buy me a coffee: www.buymeacoffee.com/software...
    🙌 Become my Patreon and get exclusive perks: / softdevdiaries
    💼 Follow me on LinkedIn and drop me a message if you'd like: / gadirovgs
    💻 Also, let's connect on GitHub: github.com/gusgad
    And don't forget to subscribe for more videos like this 😊
  • Наука та технологія

КОМЕНТАРІ • 12

  • @ShujaatAli-sx1ou
    @ShujaatAli-sx1ou 5 днів тому

    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?

  • @Finn-jp6pn
    @Finn-jp6pn 3 місяці тому +2

    Thanks. Learned a new concept today... reconciliation

  • @SoftwareDeveloperDiaries
    @SoftwareDeveloperDiaries  3 місяці тому +1

    Have you already tried working with payments? What was your experience? 🤓
    And don't forget to try out Cryptomus: cryptomus.com/? 💫

  • @Aleks-fp1kq
    @Aleks-fp1kq 3 місяці тому +1

    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?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  3 місяці тому +1

      Good question. If a user’s balance is inconsistent across replicas, decisions like allowing a purchase become critical. Systems must handle such scenarios gracefully, perhaps by blocking transactions until consistency is restored

  • @cse9003
    @cse9003 3 місяці тому

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

  • @kdrenski2471
    @kdrenski2471 2 місяці тому

    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?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  2 місяці тому

      Thank you! Yes, you’re totally right. I’ve covered that in my videos too, but left it out in this one just for the sake if simplicity 😉

  • @blackrock2222
    @blackrock2222 3 місяці тому

    Very Nice video! ❤