Skip to content

Uber: push instead of polling

Moving millions of phones from polling for updates to a push platform that resumes cleanly after a dropped connection.

The idea

Apps that poll for changes spend most of their requests learning that nothing changed. Uber replaced polling with push: the server holds a connection to each app and sends updates as they happen.

Push brings its own problems, which is what makes the post useful. Mobile connections drop all the time, so each message carries a sequence number, and a reconnecting app asks to resume from the last one it saw. Later versions added acknowledgements, so the server knows what actually arrived rather than what it sent. These are the delivery questions the notifications investigation asks: what is delivered at least once, what may be dropped, and who notices.

Read the originals

Written by the engineers who built it.

  • Uber's Real-Time Push Platform

    Madan Thangavelu and others · Post, Dec 2020

    Why polling was replaced, and the delivery problems push brought with it: resuming after a dropped connection, and knowing what actually arrived.

Practise it

Make the decisions yourself, then compare.