{"id":128310,"date":"2021-09-29T20:24:07","date_gmt":"2021-09-30T03:24:07","guid":{"rendered":"https:\/\/lifeboat.com\/blog\/2021\/09\/building-ubers-fulfillment-platform-for-planet-scale-using-google-cloud-spanner"},"modified":"2021-09-29T20:24:07","modified_gmt":"2021-09-30T03:24:07","slug":"building-ubers-fulfillment-platform-for-planet-scale-using-google-cloud-spanner","status":"publish","type":"post","link":"https:\/\/lifeboat.com\/blog\/2021\/09\/building-ubers-fulfillment-platform-for-planet-scale-using-google-cloud-spanner","title":{"rendered":"Building Uber\u2019s Fulfillment Platform for Planet-Scale using Google Cloud Spanner"},"content":{"rendered":"<p><a class=\"aligncenter blog-photo\" href=\"https:\/\/lifeboat.com\/blog.images\/building-ubers-fulfillment-platform-for-planet-scale-using-google-cloud-spanner2.jpg\"><\/a><\/p>\n<p><b>Introduction<\/b><\/p>\n<p>The Fulfillment Platform is a foundational Uber domain that enables the rapid scaling of new verticals. The platform handles <i>billions of database transactions<\/i> each day, ranging from user actions (e.g., a driver starting a trip) and system actions (e.g., creating an offer to match a trip with a driver) to periodic location updates (e.g., recalculating eligible products for a driver when their location changes). The platform handles <i>millions of concurrent users<\/i> and <i>billions of trips<\/i> per month across <i>over ten thousand cities<\/i> and <i>billions of database transactions<\/i> a day.<\/p>\n<p>In the previous <a href=\"https:\/\/eng.uber.com\/fulfillment-platform-rearchitecture\/\">article<\/a>, we introduced the Fulfillment domain, highlighted challenges in the previous architecture, and outlined the new architecture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The Fulfillment Platform is a foundational Uber domain that enables the rapid scaling of new verticals. The platform handles billions of database transactions each day, ranging from user actions (e.g., a driver starting a trip) and system actions (e.g., creating an offer to match a trip with a driver) to periodic location updates (e.g., [\u2026]<\/p>\n","protected":false},"author":513,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-128310","post","type-post","status-publish","format-standard","hentry","category-habitats"],"_links":{"self":[{"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/posts\/128310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/users\/513"}],"replies":[{"embeddable":true,"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/comments?post=128310"}],"version-history":[{"count":0,"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/posts\/128310\/revisions"}],"wp:attachment":[{"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/media?parent=128310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/categories?post=128310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lifeboat.com\/blog\/wp-json\/wp\/v2\/tags?post=128310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}