- Mailing Lists
- in
- How Uber Unified Checkouts Across Billion-Dollar Business Lines
Archives
- By thread 4560
-
By date
- June 2021 10
- July 2021 6
- August 2021 20
- September 2021 21
- October 2021 48
- November 2021 40
- December 2021 23
- January 2022 46
- February 2022 80
- March 2022 109
- April 2022 100
- May 2022 97
- June 2022 105
- July 2022 82
- August 2022 95
- September 2022 103
- October 2022 117
- November 2022 115
- December 2022 102
- January 2023 88
- February 2023 90
- March 2023 116
- April 2023 97
- May 2023 159
- June 2023 145
- July 2023 120
- August 2023 90
- September 2023 102
- October 2023 106
- November 2023 100
- December 2023 74
- January 2024 75
- February 2024 75
- March 2024 78
- April 2024 74
- May 2024 108
- June 2024 98
- July 2024 116
- August 2024 134
- September 2024 130
- October 2024 141
- November 2024 171
- December 2024 115
- January 2025 216
- February 2025 140
- March 2025 220
- April 2025 134
Professional Estimator (Send your plans)
Getting fit for growth: The leadership mindsets and behaviors that matter
How Uber Unified Checkouts Across Billion-Dollar Business Lines
How Uber Unified Checkouts Across Billion-Dollar Business Lines
Building AI Apps on Postgres? Start with pgai (Sponsored)pgai is a PostgreSQL extension that brings more AI workflows to PostgreSQL, like embedding creation and model completion. pgai empowers developers with AI superpowers, making it easier to build search and retrieval-augmented generation (RAG) applications. Automates embedding creation with pgai Vectorizer, keeping your embeddings up to date as your data changes—no manual syncing required. Available free on GitHub or fully managed in Timescale Cloud. Disclaimer: The details in this post have been derived from the Uber Engineering Blog. All credit for the technical details goes to the Uber engineering team. The links to the original articles are present in the references section at the end of the post. We’ve attempted to analyze the details and provide our input about them. If you find any inaccuracies or omissions, please leave a comment, and we will do our best to fix them. Uber began as a ridesharing company and their back-end systems were built specifically for this purpose. Payment operations were deeply integrated into the ridesharing framework, focusing on the straightforward interaction between riders and drivers. Over time, however, Uber diversified into various lines of business (LOBs) such as:
Each new LOB built its back-end system to support its unique business logic. However, this approach created inconsistencies because payment methods and features were not uniformly supported across all LOBs. For example:
There was also a duplication of efforts because payment features like two-factor authentication or device fingerprinting, had to be implemented multiple times–once for each LOB. As expected, managing and maintaining multiple back-end payment systems increased the technical complexity, cost, and risk of errors. Introducing new payment features or compliance requirements (for example, regulatory mandates like Strong Customer Authentication in the EU) required redundant implementations across the fragmented systems, slowing Uber’s ability to adapt and innovate. The need for a unified, scalable solution to address these challenges became critical, paving the way for the development of the Unified Checkout system. In this article, we’ll look at how Uber developed this system and its architecture. If It’s Slow, It’s Broken 🐢 (Sponsored)To your users, slow and buggy are the same thing. 🐛 And Sentry helps you find bugs fast, even the ones that aren’t obvious.
Whether it’s an error or a slowdown, Sentry helps you fix issues fast and keep your app running smoothly. Because if it’s slow, it’s broken. Unified Checkout Solution By UberThe Unified Checkout system acts as a single, centralized layer for managing payments across all Uber services. Think of Unified Checkout as a one-stop shop for all payment-related activities at Uber. Instead of each service (like Uber Eats or ridesharing) building its payment system, they now plug into a single, centralized system. See the diagram below that shows a comparison of the system landscape with and without Unified Checkout: Some key features of the Unified Checkout system are as follows:
Design PhilosophyUber approached the Unified Checkout platform with a clear set of guiding principles:
Architecture of Unified Checkout SystemLet’s now look at the architecture of the Unified Checkout system. We will look at the core components and how they are deployed. Core ComponentsThe architecture of the Unified Checkout system revolves around several interconnected components, each serving a specific purpose in the payment process. The diagram below shows the architecture on a high level. Let’s look at various components in detail. 1 - Payment Profile PreparationThis component gathers and processes transactional data from the user. It integrates with third-party systems like banks and payment gateways. For example, if a user chooses to pay via Apple Pay, this component securely exchanges short-lived tokens with Apple’s systems to authenticate the transaction. 2 - Risk Evaluation and Securing FundsUber’s risk system evaluates the payment request for potential fraud or other risks. Depending on the evaluation, the system may temporarily lock the required amount in the user’s account (used when payment is finalized after the service, like a ride). Based on the strategy, it can also charge the full amount before the service begins. 3 - Checkout ActionsThis is a stateless framework that handles essential tasks to ensure smooth transactions. It includes multiple tasks such as:
These actions are designed to be generic and reusable across all Uber LOBs, making the system versatile and efficient. 4 - Event HandlingMany payment systems work asynchronously, meaning the payment processor may not provide immediate confirmation. This component listens for payment confirmation signals from third-party systems and decides the next step.
Deployment ModelsThe Unified Checkout system supports two deployment models, catering to the varied needs of Uber’s LOBs. 1 - Modular DeploymentsThe modular version allows LOBs to integrate pre-built components of the Unified Checkout system directly into their apps and workflows. Here’s how it works:
See the screenshot below that shows this feature:
The main benefit of this approach is the flexibility of LOB-specific integration while simplifying payment operations. 2 - Hosted DeploymentThis is an out-of-the-box solution for smaller LOBs or new verticals, providing a complete payments and checkout system. Here’s how it works:
See the screenshot below that shows a hosted checkout summary view:
This solution accelerates time-to-market for smaller teams or experimental services while ensuring full feature parity with Uber’s top payment methods. Checkout Actions FrameworkThe Checkout Actions framework is a key feature of the Unified Checkout system It handles the necessary steps to complete a transaction and resolve any issues during the process. It’s a stateless framework, meaning it doesn’t store user-specific information between actions, ensuring efficiency and scalability. See the diagram below that shows a sequence diagram for checkout actions: The key features of the framework are as follows:
Pre-Checkout ActionsPre-checkout actions are steps completed before the checkout request interacts with the Unified Checkout back end. These actions ensure all the necessary information is gathered before the transaction is initiated, minimizing delays or errors later in the process. The pre-checkout actions are deterministic, meaning they’re known in advance and must always occur for certain transactions. By handling them upfront, the system reduces the complexity of subsequent operations. Some examples of pre-checkout actions are as follows:
See the screenshot below that shows pre-checkout actions:
Post-Checkout ActionsPost-checkout actions occur after the checkout request has been sent to the back end. These actions handle the unpredictable nature of payment processing where external systems might reject or delay a transaction. By offering corrective actions, the system ensures a high recovery rate and reduces user drop-offs. They are often conditional, triggered by the results of payment processing or risk evaluation. Some examples of post-checkout actions are as follows:
See the screenshot below that shows a few post-checkout actions:
Understanding Through an ExampleImagine using Uber Eats and trying to pay with a credit card. Here’s a list of possible pre-checkout and post-checkout actions that might be involved:
ConclusionThe Unified Checkout system directly enhanced key business metrics such as:
The architecture and implementation of the Unified Checkout system show how common, duplicated operations can be evolved into scalable platforms. Uber tackled technical debt accumulated during its rapid growth by creating a generic system that works across all Lines of Business (LOBs). However, the Unified Checkout platform is not a static solution. Uber continues experimenting with new features, error recovery models, and payment methods to optimize the system further. This proactive approach ensures that the platform remains relevant and effective in the face of changing market demands. References: © 2025 ByteByteGo |
by "ByteByteGo" <bytebytego@substack.com> - 11:36 - 14 Jan 2025