Evaluation of Uber’s Design

Lesson 137 of 25610 min readPremium lesson preview
In this lesson4 sections

Evaluation of Uber’s Design

Evaluate the ride-hailing design by tracing failures through location, assignment, trip, and payment state. Replicas and independent services help only when their recovery behavior preserves the required rules.

Requirements compliance

Let’s evaluate how the design fulfills non-functional requirements.

Availability

A dropped WebSocket connection can reconnect through a healthy server, but the client must resume from the authoritative trip version or event cursor. Replicate trip data according to the chosen database’s protocol; Cassandra’s masterless replication differs from a primary-replica SQL deployment. Test loss of a service host, a database replica, and a regional dependency. CDN caches can keep eligible static assets available, not replace the live assignment service.

Scalability

Scale location ingestion, candidate discovery, matching, and trip processing according to their different workloads. Spatial cells reduce candidate work, but a dense event area can still become hot. Measure how many index and record shards each request contacts, and size replicas and queues for bursts. Adding hosts does not fix an assignment transaction that serializes too much work on one key.

Reliability

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.