How Uber Handles Billions of Payments Without Missing a Single Transaction
In this video, we're going to explore how Uber, a company that processes billions of payments every year, manages to do so without missing a single transaction. Uber's innovative solution to managing their massive payment infrastructure is a fascinating tale of engineering and technology.
We all know how Uber works - we click a button, pay for a lift, and then Uber pays the driver. But what happens when you scale this up to 100 million users, billions of rides, and hundreds of billions of dollars being passed around? The system becomes incredibly complex, and the initial payment system used by Uber was no longer viable.
Uber's Journey from Monolith to Microservices Architecture
Uber's solution was to evolve their tech stack, moving from a monolith application to a microservices architecture. They switched from Postgres to mySQL and built technology everywhere around it. However, if there's one thing you can't mess up, it's dealing with money. Uber's system was messing up big time, with the system being unstable, fragmented, and slow.
Rebuilding the Payment System from Scratch
To solve this problem, Uber rebuilt their payment system from scratch. They introduced a job/order-based system, where each job represents a trip that a user goes on. They also created LedgerStore, Uber's custom ledger database.
The Importance of Immutability in Financial Transactions
One of the key features of LedgerStore is immutability, which means that once a transaction is written to the ledger, it cannot be changed. This is critical in financial transactions, where accuracy and reliability are paramount.
The Shadow Writer Technique for Seamless Database Transition
Uber's massive data migration process involved migrating 250 billion records to LedgerStore. They used a technique called the Shadow Writer, which allows them to write data to both old and new systems simultaneously, ensuring a seamless transition.
Different Types of Indexes Used by Uber
Uber uses different types of indexes to manage their massive dataset, including strongly consistent, eventual consistent, and time-range indexes. Each type of index is used for specific purposes, such as handling credit card authorizations or managing historical data.
Conclusion
In conclusion, managing billions of payments without missing a single transaction requires incredible engineering and technology. Uber's innovative solution to managing their payment infrastructure is a testament to the power of technology and human ingenuity.
I hope you enjoyed this video! Don't forget to subscribe to the channel and hit the like button.