Search Autocomplete: Low-Level Design
A search autocomplete system provides real-time suggestions as users type, ranking completions by popularity or relevance. At Google or Amazon […]
A search autocomplete system provides real-time suggestions as users type, ranking completions by popularity or relevance. At Google or Amazon […]
A file storage system (like Dropbox or Google Drive) stores user files, provides sync across devices, and handles concurrent edits.
A notification system delivers messages to users through one or more channels — push notifications, email, SMS, in-app. At scale
A URL shortener converts a long URL into a short alias (e.g., bit.ly/abc123) that redirects to the original. Building one
A time series database (TSDB) is optimized for storing and querying time-stamped data — metrics, sensor readings, financial prices, event
Real-time server-to-client communication requires the server to push data without waiting for a client request. Three primary patterns exist: long
The gossip protocol (epidemic protocol) is a peer-to-peer communication method where each node periodically shares information with a small number
Observability is the ability to understand the internal state of a system from its external outputs. A system is observable
Exactly-once delivery means that every message is processed precisely once — neither lost (at-least-once) nor delivered multiple times (at-most-once). True
Raft is a distributed consensus algorithm designed to be understandable — a deliberate contrast to Paxos, which is notoriously difficult
Backpressure is a mechanism that allows a downstream component to signal an upstream component to slow down — preventing fast
API versioning allows a service to evolve its interface without breaking existing clients. The fundamental challenge: once an API is
The Saga pattern is a way to manage data consistency across multiple services in a microservices architecture without using distributed
A Merkle tree is a hash tree where every leaf node contains the hash of a data block, and every
A skip list is a probabilistic data structure that provides O(log n) average time for search, insertion, and deletion —