34. POINT A POINT B
CONTEXT MATTERS
The Trip Experiences API can tell you…
When the rider has free time
How much free time they have
Where they’re coming from
Where they’re going
44. Auth your users via the native Uber app
No more username & password
One tap and your app can start requesting
rides
Single Sign On
Auth via Uber
45. Just set your ride parameters and let the Uber
app handle the ride experience
Existing users will feel right at home
Keep the focus on your app; let us handle the ride
Deep Links
Quick & easy
46. Highly configurable buttons let you get started
easily
Login Button lets you auth users using the
method you want (Native, Authorization Code
Grant, or Implicit Grant)
Ride Request Button allows you to request a
ride using Deep Links, the Ride Request
Widget, or custom API logic
Uber Buttons
Ride Request Button & Login Button
47. Provide the full Uber experience without ever
leaving your app
An entirely embedded experience, from
request to drop off
Ride Request Widget
Experience Uber without the app
49. Schemaless uses an append-only sparse three dimensional
persistent hash map. A datastore developed by Uber with 5 goals
in mind:
1) Linear scale - more storage and decreased response times
2) Writability - no middleware for fallback or retry
3) Notifications - triggers for downstream dependencies
4) Secondary Indexes - just like in Postgres to search for trips
5) Operational Trust - expert knowledge for mission-critical data
DATA STORAGE WITH SCHEMA LESS
50. Trip details are stored as JSON blobs with versioning
DATA STORAGE WITH SCHEMA LESS
51. MICRO-SERVICES
Moving from a monolith solution to SOA created challenges related to
obviousness, safety, and reliance. Our SOA architecture had to enable us for …
1) Discoverability - finding the right service out of 300+ should be trivial
2) Client Libraries - building SDKs for encapsulated services should be easy
3) Language - we need to have an architecture that is language-agnostic
4) Customizable - timeouts and retry policies are required and should be tunable
5) Efficiency - testing and development of new services with less overhead
52. THRIFT AS IDL-BASED ENCODING PROTOCOL
Thrift forces service owners to publish strict interface definitions. Encoding/Decoding
is efficient, compression is good, and it unifies JSON blobs for Schemaless.
53. DAILY DEPLOYMENT WITH UDEPLOY
Consistent builds for services, zero downtime upgrades, automated error detection
56. Connect your user
Detect when a user is on a ride
Get the Uber Context
Use the context to enhance your app!
57. Create an app in the Uber
Developer Dashboard
Scroll down, find the
“Webhook URL” field and
enter a URL that will receive
webhooks from the API
Before we start:
58. Connect your user
Detect when a user is on a ride
Get the Uber Context
Use the context to enhance your app!
59. Let them securely sign in with their Uber
account username and password
• OAuth 2.0
• Single Sign On
Connect your user
60. Connect your user
Detect when a user is on a ride
Get the Uber Context
Use the context to enhance your app!
61. You’ll receive a webhook when their
ride status changes.
Use the `user_id` to figure out
which one of your users is on a
ride.
Detect when a user is on a ride
62. Connect your user
Detect when a user is on a ride
Get the Uber Context
Use the context to enhance your app!
63. Get information about your user’s ride!
• Pickup/destination location
• Going home or work
• Uber Product Type
• ETA / Duration
• and more!
Get the Uber Context
64. Connect your user
Detect when a user is on a ride
Get the Uber Context
Use the context to enhance your app!