SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Magical User Experiences On
Cellular Mobile Networks
Marketplace Platform
❏ Madan Thangavelu
❏ Nilesh Mahajan
01 Introduction to Uber’s Marketplace Platform
02 Uber app experience challenges
03 How did we solve these problems?
04 Insights
Agenda
Introduction to
Marketplace
Platform
Team
Goal
Extensible platform for reliably
moving people and things
Real-Time
Communications
Geographical
Awareness
High Global
Availability
Logistics
Modeling
Open Platform
Development
Problem areas we work on
“Building
systems at
Uber-scale”
Rider/Core Flow
Home Enter Destination Request Ride Dispatch Driver Enroute
Shopping Ordering Processing Fulfilling
State Machines
Rider State Machine Driver State Machine
Synchronize
Rider State Machine Driver State Machine
Uber App Experience Challenges
● Time-to-launch app critical on 3G or slower networks
● Synchronize across multiple apps (driver, rider)
● Over tens of parallel RPC request to load various
features at app launch, all competing for resources
● Network used is usually cellular and not WiFi
● Polling is expensive
● Polling payloads change less frequently
● Best polling frequency of N second.
● Higher data consumption
How did we solve
these problems?
Key Choices
● Moving from sync to async architecture
○ Use of reactive pattern inside apps
○ Reducing blocking network call dependencies
● Reduce client-server interactions
○ Moving from poll to push
Components of a Push System
Trigger Service API Layer Push Server App
Pushes
consumer
When to Push? What to Push? How to Push?Triggers
Push Protocols
Long Polling
● Work with our HTTP proxies
● Available in browsers
● Simple client implementations
Server Sent Events
● SSE has fewer reconnect roundtrips,
● Lower latency
Client Server
CONTINUE
CONNECT
MSG
45 Sec
MSG
CONNECT
CONNECT
CONNECT
Client Server
CONNECT
MSG
MSG
MSG
MSG
Long Polling Server Sends Events
Leveraging Server Sent Events
● Advantages
○ Simple to implement and understand
○ Works on top of HTTP
● Challenges
○ Unidirectional
○ No Visibility
○ Hard to detect broken connections
Introducing Ramen
● Real-time Asynchronous MEssaging Network
● HTTP SSE-based push protocol
● Ensures at least once delivery of a push message
● Optimizes amount of data transfer
Ramen Protocol
App Ramen Server
/connect?seq=0
Message1,seq=1
Message2,seq=2
/connect?seq=2
Message3,seq=3
Message3,seq=3
Ramen
Session
Connect
Reconnect
HTTP 200 (text/event-stream)
HTTP 200 (text/event-stream)
Ack seq=2
Ramen Protocol continued..
● Heartbeats every 5 seconds to detect connection failure
● Message acknowledgement every 30 seconds
● Push message wire priority
○ High
○ Medium
○ Low
How speed up app launch?
● App launch process
○ App establishes a Ramen connection with server
○ App make one request to backend - /app/launch
■ Endpoint returns 1 MTU (1500 bytes)-sized response
■ /app/launch also acts as a async trigger to our push systems
○ Based on back-end user state, server generates tens of pushes
○ Pushes are sent on Ramen connection by their priority
○ Based on data in push, experience is rendered on the mobile side
Network Pattern
App API
Gateway
App
API
Gateway
Push
Server
Ramen
Pushes
High
Medium
Low
Trigger
/app/launch
connect
Before After
60% reduction
26% reduction
89% reduction
78% reduction
vs Poll :
vs Ramen v1 :
P99
End-to-End Latency
How did we make the entire app more
responsive?
● App launch process
○ App establishes a Ramen connection with server
● On any state machine change
○ Kafka events trigger the push systems
○ Based on type of event and backend state, pushes are generated
○ Pushes are sent over the Ramen connection
● All polling calls were changed to push
● Larger pushes were broken down to smaller pushes
● Enforcement and education about payload sizes
Concurrent Connections
1M+
Types of apps
20+ Messages Streamed Per
Second
100K+
Messages Delivered for
Driver app
99%
Rider
Driver
Uber Lite
Uber Eats
Restaurants
Uber Fleet
Uber Freight
Web
Jump Bikes
Insights
Thank you !
Proprietary and confidential © 2019 Uber Technologies, Inc. All rights reserved. No part of this document may be reproduced or utilized in any
form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval systems, without
permission in writing from Uber. This document is intended only for the use of the individual or entity to whom it is addressed and contains
information that is privileged, confidential or otherwise exempt from disclosure under applicable law. All recipients of this document are notified
that the information contained herein includes proprietary and confidential information of Uber, and recipient may not make use of, disseminate,
or in any way disclose this document or any of the enclosed information to any person other than employees of addressee to the extent
necessary for consultations with authorized personnel of Uber.
Gids conference-talk-2019-madan-thangavelu

Weitere ähnliche Inhalte

Ähnlich wie Gids conference-talk-2019-madan-thangavelu

Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
AgileNetwork
 
Emergency ambulance portal-PPT-3g2pqy.pptx
Emergency ambulance portal-PPT-3g2pqy.pptxEmergency ambulance portal-PPT-3g2pqy.pptx
Emergency ambulance portal-PPT-3g2pqy.pptx
dragonaklevel7
 

Ähnlich wie Gids conference-talk-2019-madan-thangavelu (20)

Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
Splunk MINT for Mobile Intelligence and Splunk App for Stream for Enhanced Op...
 
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
Agile Gurugram 2023 | Observability for Modern Applications. How does it help...
 
What’s New: Splunk App for Stream and Splunk MINT
What’s New: Splunk App for Stream and Splunk MINTWhat’s New: Splunk App for Stream and Splunk MINT
What’s New: Splunk App for Stream and Splunk MINT
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Problem definition
Problem definitionProblem definition
Problem definition
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Data Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache FlumeData Aggregation At Scale Using Apache Flume
Data Aggregation At Scale Using Apache Flume
 
Splunk MINT and Stream Breakout
Splunk MINT and Stream BreakoutSplunk MINT and Stream Breakout
Splunk MINT and Stream Breakout
 
#1922 rest-push2 ap-im-v6
#1922 rest-push2 ap-im-v6#1922 rest-push2 ap-im-v6
#1922 rest-push2 ap-im-v6
 
Network characteristics of the cloud
Network characteristics of the cloudNetwork characteristics of the cloud
Network characteristics of the cloud
 
Emergency ambulance portal-PPT-3g2pqy.pptx
Emergency ambulance portal-PPT-3g2pqy.pptxEmergency ambulance portal-PPT-3g2pqy.pptx
Emergency ambulance portal-PPT-3g2pqy.pptx
 
From reactive to proactive mobile scenarios
From reactive to proactive mobile scenariosFrom reactive to proactive mobile scenarios
From reactive to proactive mobile scenarios
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02
 
AppNeura
AppNeuraAppNeura
AppNeura
 
appNeura - DEM User Digital Experience
appNeura - DEM User Digital ExperienceappNeura - DEM User Digital Experience
appNeura - DEM User Digital Experience
 
Telco industry
Telco industryTelco industry
Telco industry
 
How Developers can Capitalize on the coming Mobile Data Tsunami - Openwave 2009
How Developers can Capitalize on the coming Mobile Data Tsunami - Openwave 2009How Developers can Capitalize on the coming Mobile Data Tsunami - Openwave 2009
How Developers can Capitalize on the coming Mobile Data Tsunami - Openwave 2009
 
Online voting system presentation slide (1)
Online voting system presentation slide (1)Online voting system presentation slide (1)
Online voting system presentation slide (1)
 
Consumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With PostmanConsumer-Driven Contract Testing With Postman
Consumer-Driven Contract Testing With Postman
 
E-commerce Berlin Expo 2017 - AMP and Progressive Web Apps – Start Fast, Stay...
E-commerce Berlin Expo 2017 - AMP and Progressive Web Apps – Start Fast, Stay...E-commerce Berlin Expo 2017 - AMP and Progressive Web Apps – Start Fast, Stay...
E-commerce Berlin Expo 2017 - AMP and Progressive Web Apps – Start Fast, Stay...
 

Kürzlich hochgeladen

Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 

Gids conference-talk-2019-madan-thangavelu

  • 1.
  • 2. Magical User Experiences On Cellular Mobile Networks Marketplace Platform ❏ Madan Thangavelu ❏ Nilesh Mahajan
  • 3. 01 Introduction to Uber’s Marketplace Platform 02 Uber app experience challenges 03 How did we solve these problems? 04 Insights Agenda
  • 5. Goal Extensible platform for reliably moving people and things
  • 8. Rider/Core Flow Home Enter Destination Request Ride Dispatch Driver Enroute Shopping Ordering Processing Fulfilling
  • 9. State Machines Rider State Machine Driver State Machine
  • 10. Synchronize Rider State Machine Driver State Machine
  • 11. Uber App Experience Challenges ● Time-to-launch app critical on 3G or slower networks ● Synchronize across multiple apps (driver, rider) ● Over tens of parallel RPC request to load various features at app launch, all competing for resources ● Network used is usually cellular and not WiFi ● Polling is expensive ● Polling payloads change less frequently ● Best polling frequency of N second. ● Higher data consumption
  • 12. How did we solve these problems?
  • 13. Key Choices ● Moving from sync to async architecture ○ Use of reactive pattern inside apps ○ Reducing blocking network call dependencies ● Reduce client-server interactions ○ Moving from poll to push
  • 14. Components of a Push System Trigger Service API Layer Push Server App Pushes consumer When to Push? What to Push? How to Push?Triggers
  • 15. Push Protocols Long Polling ● Work with our HTTP proxies ● Available in browsers ● Simple client implementations Server Sent Events ● SSE has fewer reconnect roundtrips, ● Lower latency Client Server CONTINUE CONNECT MSG 45 Sec MSG CONNECT CONNECT CONNECT Client Server CONNECT MSG MSG MSG MSG Long Polling Server Sends Events
  • 16. Leveraging Server Sent Events ● Advantages ○ Simple to implement and understand ○ Works on top of HTTP ● Challenges ○ Unidirectional ○ No Visibility ○ Hard to detect broken connections
  • 17. Introducing Ramen ● Real-time Asynchronous MEssaging Network ● HTTP SSE-based push protocol ● Ensures at least once delivery of a push message ● Optimizes amount of data transfer
  • 18. Ramen Protocol App Ramen Server /connect?seq=0 Message1,seq=1 Message2,seq=2 /connect?seq=2 Message3,seq=3 Message3,seq=3 Ramen Session Connect Reconnect HTTP 200 (text/event-stream) HTTP 200 (text/event-stream) Ack seq=2
  • 19. Ramen Protocol continued.. ● Heartbeats every 5 seconds to detect connection failure ● Message acknowledgement every 30 seconds ● Push message wire priority ○ High ○ Medium ○ Low
  • 20. How speed up app launch? ● App launch process ○ App establishes a Ramen connection with server ○ App make one request to backend - /app/launch ■ Endpoint returns 1 MTU (1500 bytes)-sized response ■ /app/launch also acts as a async trigger to our push systems ○ Based on back-end user state, server generates tens of pushes ○ Pushes are sent on Ramen connection by their priority ○ Based on data in push, experience is rendered on the mobile side
  • 22. 60% reduction 26% reduction 89% reduction 78% reduction vs Poll : vs Ramen v1 : P99 End-to-End Latency
  • 23. How did we make the entire app more responsive? ● App launch process ○ App establishes a Ramen connection with server ● On any state machine change ○ Kafka events trigger the push systems ○ Based on type of event and backend state, pushes are generated ○ Pushes are sent over the Ramen connection ● All polling calls were changed to push ● Larger pushes were broken down to smaller pushes ● Enforcement and education about payload sizes
  • 24. Concurrent Connections 1M+ Types of apps 20+ Messages Streamed Per Second 100K+ Messages Delivered for Driver app 99% Rider Driver Uber Lite Uber Eats Restaurants Uber Fleet Uber Freight Web Jump Bikes Insights
  • 26. Proprietary and confidential © 2019 Uber Technologies, Inc. All rights reserved. No part of this document may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval systems, without permission in writing from Uber. This document is intended only for the use of the individual or entity to whom it is addressed and contains information that is privileged, confidential or otherwise exempt from disclosure under applicable law. All recipients of this document are notified that the information contained herein includes proprietary and confidential information of Uber, and recipient may not make use of, disseminate, or in any way disclose this document or any of the enclosed information to any person other than employees of addressee to the extent necessary for consultations with authorized personnel of Uber.