Uber: H3 Hexagonal Geospatial Indexing & Real-Time DISCO Dispatch
Real-time mobility matching at planet scale: H3 hexagonal hierarchical geospatial index, DISCO supply-demand marketplace matching, and Cadence durable workflow orchestration.
Uber matches millions of drivers and riders concurrently. GPS coordinates stream over WebSockets every 4 seconds. Uber partitions the globe into hierarchical hexagons using the open-source H3 spatial index, ensuring equidistant neighbor traversal and zero metric distortion.
H3: Hexagonal Hierarchical Spatial Index
Millions of GPS updates per minute matched within sub-second dispatch windowsFinding nearby available drivers within a dynamic radius without expensive Euclidean distance scans on millions of latitude/longitude coordinates.
The globe is mapped into a discrete hexagonal hierarchical grid. Unlike square grids where diagonals are √2 longer, hexagons have invariant distance to all 6 neighbors.
Hexagons cannot be subdivided into smaller hexagons perfectly without slight aperture rotation (aperture 7), but neighbor distance uniformity drastically simplifies spatial radius calculations.
When asked how to find drivers within 3 km, explain H3 k-ring traversal: looking up the driver’s current H3 cell and querying the concentric ring of k neighbor hexagons in O(1) hash maps.
What System Design Is & Functional vs Non-Functional Requirements
Define system architectures and distinguish the core capabilities of a system from its performance, scale, availability, and reliability characteristics.
"What Happens When You Type a URL and Hit Enter" - Full Walkthrough
The iconic system design capstone question: Unify keyboard interrupts, HSTS, DNS resolution, ARP, TCP handshake, TLS 1.3, HTTP routing, DB query, and DOM rendering.
SQL vs NoSQL Decision Framework
The ultimate architecture selection rubric: 8 critical decision axes, hybrid polyglot persistence patterns, and why PostgreSQL is often the best default choice.
Search-Optimized Stores & Inverted Indexes (Elasticsearch / Lucene)
Explore full-text search: Inverted index mechanics, Tokenization, Stemming, Stop words, BM25 relevance scoring, and fuzzy n-gram autocomplete.
The Saga Pattern: Choreography vs Orchestration
Manage distributed business transactions across microservices using compensating transactions, choreography, and centralized orchestrators.
Local (In-Memory) vs Distributed Cache
Evaluate architectural caching tiers: In-process heap caches (Guava, Caffeine) vs Remote distributed clusters (Redis, Memcached).
Message Broker Landscape: RabbitMQ vs Apache Kafka vs AWS SQS
Select the optimal messaging engine: Smart broker / dumb consumer (RabbitMQ) vs Dumb broker / smart consumer (Kafka) vs Fully managed serverless (AWS SQS).
Command Query Responsibility Segregation (CQRS)
Separate read and write data models: Write-optimized relational stores, read-optimized projection views (Elasticsearch/Redis), projection lag mitigation, and eventual consistency.
Batch vs Stream Processing
Analyze data processing paradigms: Bounded historical datasets (Spark/Hadoop) vs Unbounded real-time event streams (Flink/Kafka Streams), and the Lambda vs Kappa architecture evolution.
Uber Engineering Blog • 2018
Uber Engineering Blog • 2020
Ready to Practice Uber-Style Systems?
Start with foundational networking, compute, and storage, and build up to complex distributed consensus.