fivenines
All tracks

Guided learning track

Build Your Own Uber

A ride-exchange architecture evolved from a complete three-nines regional system through four-nines automation to selective five-nines critical flows.

Next up

Orientation · Tutorial 1 of 38

The product: a ride exchange

20 min · 0% complete
Start tutorial
Full curriculum4 modules · 38 tutorials
01

Orientation

0/2 done

Establish the ride-exchange product boundary, reliability targets, and shared scale envelope.

01
Tutorial 120 min

The product: a ride exchange

Model ride hailing as a two-sided, real-time marketplace whose core loop is request, quote, match, trip, payment, and feedback.

ArticlePracticeDesign
Not startedStart
02
Tutorial 220 min

Non-functional requirements: nines math and the scale envelope

Translate demand, latency, availability, durability, RPO, and RTO into numeric constraints that architecture decisions can be tested against.

ArticlePracticeDesign
Not startedStart
02

Three Nines — 99.9%

0/14 done

Build the complete ride exchange in one region with simple, correct service, data, infrastructure, and operating boundaries.

03
Tutorial 320 min

The system skeleton

Separate edge, identity, marketplace, trip, payment, communication, and data-platform responsibilities around a small set of authoritative state flows.

ArticlePracticeDesign
Not startedStart
04
Tutorial 420 min

Identity and onboarding

Separate authentication, rider and driver profiles, document verification, and account state so onboarding checks do not leak into every service.

ArticlePracticeDesign
Not startedStart
05
Tutorial 520 min

Maps, routing, and ETA

Combine map data, routing, traffic signals, and continuous ETA correction while isolating uncertain predictions from trip truth.

ArticlePracticeDesign
Not startedStart
06
Tutorial 620 min

Driver presence and location ingestion

Ingest high-rate, ephemeral driver updates with freshness rules and spatial indexing so nearby-driver views remain useful without pretending every point is durable truth.

ArticlePracticeDesign
Not startedStart
07
Tutorial 720 min

Quotes and pricing v1: surge as market clearing

Produce expiring price quotes from supply and demand, using surge to balance the market without rewriting an accepted trip's price.

ArticlePracticeDesign
Not startedStart
08
Tutorial 820 min

The matching engine: clearing the market

Rank feasible driver–rider pairs under location, ETA, and marketplace constraints while keeping dispatch decisions explicit and auditable.

ArticlePracticeDesign
Not startedStart
09
Tutorial 920 min

Trip lifecycle: the state machine of record

Make the trip state machine the source of truth, enforcing legal transitions and idempotent commands across request, match, pickup, and completion.

ArticlePracticeDesign
Not startedStart
10
Tutorial 1020 min

Payments, ledger, and payouts

Record money movement in an immutable double-entry ledger while isolating processor retries, reconciliation, and driver payouts from trip state.

ArticlePracticeDesign
Not startedStart
11
Tutorial 1120 min

Notifications, chat, and masked calls

Treat push, chat, and masked calling as asynchronous, privacy-preserving channels that support a trip without becoming its source of truth.

ArticlePracticeDesign
Not startedStart
12
Tutorial 1220 min

Ratings, history, support, and admin

Build read models and privileged workflows around immutable trip history so support actions are auditable and operational tools stay off the hot path.

ArticlePracticeDesign
Not startedStart
13
Tutorial 1320 min

Infrastructure baseline: one region, three zones

Start with one region spread across three zones, using stateless services and zonally redundant data to survive a single-zone failure.

ArticlePracticeDesign
Not startedStart
14
Tutorial 1420 min

Observability v1: golden signals and on-call

Instrument latency, traffic, errors, and saturation, then connect actionable alerts to an on-call response loop.

ArticlePracticeDesign
Not startedStart
15
Tutorial 1520 min

Data platform, BI, and reporting v1

Move operational events into an analytical pipeline so reporting workloads cannot destabilize the transactional ride path.

ArticlePracticeDesign
Not startedStart
16
Tutorial 1620 min

Recap: what 99.9% buys — and what breaks

Recognize that a three-nines baseline tolerates hours of annual disruption and still fails under zonal loss, overload, and fragile dependencies.

ArticlePracticeDesign
Not startedStart
03

Four Nines — 99.99%

0/12 done

Harden the complete exchange with automated recovery, isolation, replay, safe change, and active-passive disaster recovery.

17
Tutorial 1720 min

SLOs, error budgets, and criticality tiers

Give user journeys explicit SLOs and criticality tiers so scarce reliability investment follows impact and remaining error budget.

ArticlePracticeDesign
Not startedStart
18
Tutorial 1820 min

Hardening the topology

Remove hidden single points of failure by adding zonal redundancy, independent dependencies, health-aware routing, and bounded failover.

ArticlePracticeDesign
Not startedStart
19
Tutorial 1920 min

Data layer: sharding and automated failover

Shard state by stable ownership keys and automate fenced failover so growth and replica loss do not require unsafe manual intervention.

ArticlePracticeDesign
Not startedStart
20
Tutorial 2020 min

The event backbone: outbox, idempotency, replay

Publish state changes through a transactional outbox and make consumers idempotent so events can be retried and replayed safely.

ArticlePracticeDesign
Not startedStart
21
Tutorial 2120 min

Matching at scale: geo-sharded dispatch

Partition dispatch by geography, manage boundary spillover, and keep candidate search local enough to scale without missing viable drivers.

ArticlePracticeDesign
Not startedStart
22
Tutorial 2220 min

Resilience patterns: timeouts, breakers, shedding, degradation

Combine deadlines, bounded retries, circuit breakers, load shedding, and graceful degradation so dependency trouble does not cascade.

ArticlePracticeDesign
Not startedStart
23
Tutorial 2320 min

Multi-region disaster recovery: active–passive

Replicate critical state to a passive region and define detection, fencing, traffic shift, RPO, and RTO for a controlled regional failover.

ArticlePracticeDesign
Not startedStart
24
Tutorial 2420 min

Safe change: canaries, flags, and reversible migrations

Reduce deployment risk with canaries, feature flags, backward-compatible schemas, and migrations that can be paused or reversed.

ArticlePracticeDesign
Not startedStart
25
Tutorial 2520 min

Observability v2: SLO-driven operations

Turn user-facing SLIs into SLOs and error budgets that govern alerting, reliability work, and release pace.

ArticlePracticeDesign
Not startedStart
26
Tutorial 2620 min

Streaming data platform and real-time BI

Stream immutable operational events into replayable processing so real-time metrics and features do not couple analytics to production databases.

ArticlePracticeDesign
Not startedStart
27
Tutorial 2720 min

Fraud, security, and compliance

Layer identity, authorization, encryption, audit trails, and risk signals around sensitive ride and payment flows without overloading the hot path.

ArticlePracticeDesign
Not startedStart
28
Tutorial 2820 min

Recap: the four-nines checklist

Validate that every critical ride path has zonal redundancy, bounded failover, overload protection, observability, and safe-change controls.

ArticlePracticeDesign
Not startedStart
04

Five Nines — 99.999%

0/10 done

Apply five-nines mechanisms only to critical flows through active-active regions, cells, quorum state, static stability, and rehearsed operations.

29
Tutorial 2920 min

Where five nines is worth it — and where it's waste

Apply five nines only to safety- and trip-critical paths, allowing less critical analytics and convenience features to fail more cheaply.

ArticlePracticeDesign
Not startedStart
30
Tutorial 3020 min

Active–active multi-region with regional homes

Assign each trip and user a regional home while serving traffic from multiple regions, avoiding cross-region write conflicts during normal operation.

ArticlePracticeDesign
Not startedStart
31
Tutorial 3120 min

Cell-based architecture: bounding the blast radius

Group compute and data into repeatable cells so a hot market or failed dependency affects only its assigned riders and drivers.

ArticlePracticeDesign
Not startedStart
32
Tutorial 3220 min

State at five nines: quorum truth, ephemeral speed

Use quorum-backed storage for authoritative state and disposable fast stores for location and presence, matching consistency cost to data semantics.

ArticlePracticeDesign
Not startedStart
33
Tutorial 3320 min

Static stability: the data plane outlives the control plane

Precompute and cache routing and ownership decisions so existing rides continue when control-plane services are unavailable.

ArticlePracticeDesign
Not startedStart
34
Tutorial 3420 min

Client-side resilience: the app is part of the architecture

Make mobile clients retry safely, cache useful state, and communicate degraded service because intermittent networks are part of the system.

ArticlePracticeDesign
Not startedStart
35
Tutorial 3520 min

Chaos engineering and gamedays: rehearsing the theory

Use hypothesis-driven failure injection and gamedays to prove that detection, degradation, and recovery work under realistic conditions.

ArticlePracticeDesign
Not startedStart
36
Tutorial 3620 min

Observability v3: probes, client truth, and auto-remediation

Combine synthetic probes, client telemetry, and guarded automation to detect failures invisible to server metrics and remediate known cases safely.

ArticlePracticeDesign
Not startedStart
37
Tutorial 3720 min

The operating model and the cost of a nine

Treat additional availability as an ongoing staffing and complexity cost, supported by ownership, runbooks, incident learning, and capacity discipline.

ArticlePracticeDesign
Not startedStart
38
Tutorial 3820 min

The final architecture

Assemble cells, regional homes, durable event flows, layered state, observability, and safe operations into one selectively five-nines ride exchange.

ArticlePracticeDesign
Not startedStart