Uber Payments Platform: как эволюция архитектуры поддержала масштабирование от $50B до $217B в gross bookings
Платежная платформа Uber, известная как Gulfstream, с 2016 года поддерживает стабильность и масштабирование бизнеса, который вырос с $50 миллиардов до $217 миллиардов в годовых валовых заказах. Это стало возможным благодаря трем ключевым архитектурным принципам: иммутабельности Money Order, принципу нулевой суммы и сильной консистентности бухгалтерских балансов.
Краткий ответ
Uber Payments Platform, запущенная в 2016 году, успешно справляется с масштабированием благодаря архитектурным принципам, которые обеспечивают надежность и консистентность. Эти принципы позволяют системе обрабатывать примерно вдвое больше денежных потоков, чем gross bookings, за счёт выплат водителям, курьерам и мерчантам, поддерживая более 1,2 миллиарда entities с ledger-балансами.
Проблема масштабирования платежной системы
С ростом бизнеса Uber возникла необходимость в надежной платежной системе, способной обрабатывать значительные объемы транзакций и обеспечивать точность расчетов. Платежи и выплаты требовали высокой степени консистентности и надежности, чтобы избежать ошибок и обеспечить прозрачность.
Три архитектурных принципа Gulfstream
- Immutable Money Order: Это ключевая модель данных, представляющая собой серию дебетов и кредитов, которая не может быть изменена после записи. Если требуется корректировка, создаются дополнительные записи, что обеспечивает надежную аудируемость.
- Zero-Sum Principle: Перед записью Money Order проводятся проверки, чтобы гарантировать, что все записи суммируются до нуля. Это предотвращает создание или уничтожение денег без соответствующей записи, обеспечивая двойную запись бухгалтерского учета.
- Strongly Consistent Ledger: Платформа использует Amazon DynamoDB для хранения бухгалтерских записей, что обеспечивает сильную консистентность. Каждая сущность может иметь несколько суб-учетных записей, что оптимизирует хранение данных и позволяет поддерживать балансы в пределах 1КБ на запись.
Технические детали
Платформа была спроектирована как набор независимых, stateless микросервисов, использующих Apache Kafka в качестве шины сообщений. Это позволяет обрабатывать большинство денежных потоков Uber. Важным элементом является Entity Changelog, который обеспечивает полный аудит и возможность восстановления записей. Для пользовательских потоков в сессии используется внутренний движок рабочих процессов Cadence, что поддерживает синхронные платежи без компромиссов в асинхронной архитектуре.
Почему это важно
Правильная иммутабельность и аудит с первого дня предотвращают дорогостоящие рефакторинги. Архитектурные решения, принятые в 2016 году, до сих пор поддерживают стабильность системы, что является критически важным для платформенных команд.
Что дальше
Uber успешно реализовал модель Ledger-as-a-Service и решил проблему горячих сущностей, что стало важными архитектурными шагами в процессе масштабирования. Эти изменения уже внедрены и продолжают адаптироваться к новым требованиям бизнеса.
FAQ
Что такое Immutable Money Order?
Immutable Money Order — это модель данных, которая фиксирует денежные операции и не подлежит изменению. Корректировки фиксируются в виде новых записей.
Как работает Zero-Sum Principle?
Zero-Sum Principle гарантирует, что все записи в транзакции суммируются до нуля, предотвращая создание или уничтожение денег без соответствующей записи.
Почему важна Strongly Consistent Ledger?
Strongly Consistent Ledger обеспечивает надежность и точность бухгалтерских записей, что критично для масштабируемых платежных систем.
