Glossary
- 302 Found
- The HTTP status that tells the browser the target is temporary. The browser follows the
Locationheader and keeps using the short URL next time. - A URL shortener
- 429 Too Many Requests
- The HTTP status for a client that sent too many requests in a given time. It may carry a
Retry-Afterheader saying when to try again. - A rate limiter
- Anchor
- A copy of the latest hash written to a place the database admins cannot change, used later to check the chain.
- An audit log
- At-least-once
- A sender retries until it gets an acknowledgement, so the receiver may see the same event more than once.
- Notifications
- At-least-once
- Each job runs one or more times. A crash can make it run again, and it never runs zero times.
- A job scheduler
- At-least-once delivery
- Every event reaches the customer one or more times: the sender retries until it gets a
2xx, so the customer can get a copy twice. - Webhook delivery
- Authorize and capture
- Two card calls: the authorization holds the amount on the card, the capture takes the money later.
- An order across services
- Backfill
- A job that fills a new column for rows that existed before it, in small batches.
- Deploying without downtime
- Backpressure
- A signal from the consumer side back to the producer that says "send less", so the backlog stops growing.
- A queue that fills up
- Base62
- Writing a value with the 62 characters
0-9,a-zandA-Z. A code of n characters has 62 to the power n possible values. - A URL shortener
- Binlog
- The MySQL binary log: every committed change, in commit order. MySQL uses it for replication.
- Moving to a new database
- Block
- A fixed-size slice of a file, named by the hash of its bytes, so two devices can compare files block by block.
- File sync
- Breaking change
- A change after which code that worked against the API stops working: a removed field, a renamed field, a field with a new type.
- Changing a public API
- Burn rate
- How fast the service spends its error budget. A burn rate of 1 spends exactly the whole budget in the 30-day window.
- Measuring a service
- Capped list
- A list trimmed to a fixed length after each insert, so it keeps only the newest entries.
- An activity feed
- Central authority
- The one process that decides, for one document, the order in which steps are applied.
- Shared document editing
- Change data capture (CDC)
- Reading a database’s log of changes and sending each change somewhere else as an event.
- Moving to a new database
- Channel
- One way to reach a user: email, push to a phone, or the list of notifications inside the app.
- Notifications
- Check
- The question "does user U have relation R on object O?", answered by following tuples from O to U.
- A permissions system
- Circuit breaker
- A wrapper around a call that counts recent failures. Above a threshold it stops making the call for a while and fails at once, so the caller goes straight to its fallback.
- When a dependency is down
- Collapse id
- The APNs header
apns-collapse-id. Push requests with the same value show as one notification on the phone. - Notifications
- Compensating transaction
- The step that undoes an earlier one: release the reserved stock, cancel the card authorization.
- An order across services
- Completion suggester
- An Elasticsearch feature that returns indexed inputs starting with a given prefix, from a structure kept in memory.
- Search autocomplete
- Conditional update
- An
UPDATEwhoseWHEREclause states the row must still be free. The returned row count tells you whether you got it. - Booking concert tickets
- Conflict
- Two revisions made from the same parent revision on two devices, which sync then puts side by side under one document id.
- An offline-first mobile app
- Conflict copy
- The second version of a file, kept under a new name when two edits cannot be ordered.
- File sync
- Cutover
- The moment the application stops writing to the old database and starts writing to the new one.
- Moving to a new database
- Dead row version
- In PostgreSQL, the old copy of a deleted or updated row. It keeps its disk space until
VACUUMmarks that space free for reuse. - A paste service
- Deadlock
- Two transactions each hold a lock the other one waits for, so neither can finish.
- Booking concert tickets
- Debounce
- The client waits a short time after the last keystroke and sends one request for the text at that moment.
- Search autocomplete
- Delivery
- One row meaning "tell this user about this event on this channel". Its key is
(event_id, user_id, channel). - Notifications
- DNS rebinding
- A domain answers with a public IP when you check it, then with an internal IP when you connect.
- Link previews
- Epoch
- The moment the timestamp part of an id counts from. Snowflake counted from November 2010 instead of 1970, so the 41 bits last longer.
- Unique ids across servers
- Error budget
- The failures the SLO allows in its window. At 99.9%, it is 0.1% of the requests.
- Measuring a service
- Event notification
- A message the storage service sends when an object is created in a bucket. Here it goes to a queue.
- Image thumbnails
- Expand and contract
- A schema change split into steps. First add the new shape next to the old one, then move code and data to it, and only then remove the old shape.
- Deploying without downtime
- Expired event
- A Redis keyspace notification published when Redis deletes a key whose TTL ran out.
- Online status
- Expiry time
- The moment after which a paste must no longer be served. The author picks it when creating the paste.
- A paste service
- Exponential backoff
- Each retry waits twice as long as the previous one, starting at 1 minute.
- Webhook delivery
- Fail open
- When the limiter itself is down, let requests through instead of refusing them all.
- A rate limiter
- Fallback
- What the code returns when a call fails or times out, like a stored list of best sellers instead of personal recommendations.
- When a dependency is down
- Fan-out
- Sending one incoming message to many receivers. Here, one goal goes out to 2 million open connections.
- Live sports scores
- Fan-out on read
- The event is stored once, under its author, and each reader collects events from the accounts they follow when they open the feed.
- An activity feed
- Fan-out on write
- When an account posts, the system copies the event id into the feed of each follower, so a read only fetches one list.
- An activity feed
- Feature flag
- A named switch the code reads at run time, like
new-checkout, whose rules live outside the code. - Feature flags
- Fixed window
- A counter per key for each calendar minute (12:00, 12:01...). The count starts again at 0 when the minute changes.
- A rate limiter
- Flattened membership
- For each user, the precomputed list of every team they belong to, directly or through nested teams.
- A permissions system
- Flush
- The moment an app server writes the counts it holds in memory to the database and starts again from zero.
- Counting page views
- Gateway
- A server that holds open WebSocket connections to clients and pushes new messages down them.
- Group chat
- Geospatial index
- A structure that answers "which points lie within 3 km of here?" without reading every point. Redis stores one as a sorted set, filled with
GEOADD. - Matching riders and drivers
- Grace
- In Varnish, extra time after the TTL during which the cache still serves the stale page while it fetches a new one in the background.
- Caching a news site
- Gradual rollout
- A rule that turns a flag on for a percentage of users, chosen by a hash of the user id.
- Feature flags
- Hash chain
- Each record stores a hash computed over its own content and the previous record's hash, so changing one record changes every hash after it.
- An audit log
- Heartbeat
- A small message a connection sends on a fixed interval to say "this user is still here".
- Online status
- Hold
- A seat reserved for one fan for 10 minutes while they pay. Nobody else can hold or buy it until the hold ends.
- Booking concert tickets
- Hot standby
- A PostgreSQL replica that accepts read-only queries while it replays the changes it receives from the primary.
- Serving two regions
- Idempotency key
- A value sent with a request so the receiver can recognise a repeat and do the work only once. Here, the job id.
- A job scheduler
- Idempotency key
- A unique value sent in the
Idempotency-Keyheader. The provider runs the first request with a given key and answers every retry with the saved result. - Taking payments
- Idempotency key
- A unique string sent with a request, so the server can recognise a retry and return the first result instead of doing the work again.
- Capstone: an online shop’s checkout
- Inbound reference
- A place in another module's code that uses a class of this module. Each one must change if this module moves out.
- Splitting a monolith
- Last-Event-ID
- The HTTP header a browser’s
EventSourcesends when it reconnects, holding theidof the last event it received. - Live sports scores
- Leader key
- A key in a small coordination store, like etcd, that only the current primary may hold. It has a time to live, and the primary must renew it before it expires.
- Database failover
- Lease
- A claim on a job that ends at a set time, stored in the job row as
locked_until. If the worker does not finish before then, another worker may take the job. - A job scheduler
- Lock with expiry
- A key that only one process can create, and that deletes itself after a set time. In Redis:
SET key value NX EX 15. - Matching riders and drivers
- LSN
- Log sequence number: a position in PostgreSQL’s write-ahead log, like
16/B374D848. A replica that has replayed up to an LSN has every change written before it. - Serving two regions
- Machine id
- A number given to each server, unique among all servers. It goes into every id that server makes.
- Unique ids across servers
- Modular monolith
- One codebase and one deploy, with enforced boundaries between modules: a module calls another only through that module's public code.
- Splitting a monolith
- Multipart upload
- An S3 upload sent as numbered parts. S3 joins the parts into one object when the client calls
CompleteMultipartUpload. - Video upload pipeline
- New enemy problem
- A user removed from a team still gets access because a server checked against data from before the removal.
- A permissions system
- Offline-first
- The app reads and writes a local database on the device, and syncs with the server whenever a network is there.
- An offline-first mobile app
- Open Graph tags
<meta property="og:title">andog:imagetags in a page’s<head>that give the title and image a preview should show.- Link previews
- Orchestrator
- One component that stores the saga's state and tells each service which step to run next.
- An order across services
- Origin
- The servers that build the pages, here the 6 CMS servers behind the cache.
- Caching a news site
- Outbox
- A table written in the same transaction as the order, holding the messages (like emails) that a worker sends afterwards.
- Capstone: an online shop’s checkout
- Packwerk
- A Ruby gem from Shopify that groups files into packages and reports a violation when a package references a constant from a package it has not declared as a dependency.
- Splitting a monolith
- Partition key
- The part of a row’s key that decides which node stores the row. Rows with the same partition key sit together on disk.
- Group chat
- Pool and silo
- Pool: many tenants share the same tables. Silo: one tenant gets a database of its own.
- Multi-tenant SaaS data
- Pre-aggregation
- Adding up counts in memory on the app server and writing the sums, instead of writing each event.
- Counting page views
- Presigned URL
- A URL your API signs so that a phone can upload one object straight to the bucket, without having storage credentials of its own.
- Image thumbnails
- Presigned URL
- A URL that carries a signature allowing one S3 operation for a limited time. A browser can use it with no AWS credentials of its own.
- Video upload pipeline
- Pub/Sub
- Redis channels: a publisher sends a message to a channel name, and Redis passes it to every client subscribed to that name at that moment.
- Group chat
- Publisher confirm
- A RabbitMQ message from the broker to the producer that says whether it accepted a message (
basic.ack) or refused it (basic.nack). - A queue that fills up
- Rebase
- Rewriting your own unsent steps so they apply on top of steps other people had accepted first.
- Shared document editing
- Reconnect storm
- Thousands of clients reconnecting in the same second, after the server they were connected to stops.
- Live sports scores
- Relation tuple
- One stored fact of the form object, relation, user, like
project:p1#editor@team:t1#member(members of team t1 are editors of p1). - A permissions system
- Replication lag
- The time between a commit on the primary and the moment that change is visible on a replica.
- Serving two regions
- Request coalescing
- When many clients ask for the same missing page, the cache sends one request to the backend and holds the others until it answers.
- Caching a news site
- Reservation
- Stock taken off the available count when an order is placed, before it is paid, and put back if payment never happens.
- Capstone: an online shop’s checkout
- Revision
- In CouchDB and PouchDB, one saved version of a document, named like
2-c1592ce7..., where the number counts edits since the first one. - An offline-first mobile app
- Rolling deploy
- Servers get the new version a few at a time, while the others keep serving. For a while, old and new code run side by side against the same database.
- Deploying without downtime
- Row-level security
- A PostgreSQL feature: a policy on a table decides which rows each query can see or change, whatever the query's own
WHEREsays. - Multi-tenant SaaS data
- RPO
- Recovery point objective: the most data, counted in time, the business accepts to lose. Here, 5 minutes.
- A backup plan
- RTO
- Recovery time objective: the longest the business accepts to wait from the decision to restore until the database is back. Here, 2 hours.
- A backup plan
- Saga
- A sequence of local transactions, one per service, where each completed step has a compensating step that undoes it if a later step fails.
- An order across services
- Sequence
- A counter inside one server that numbers the ids made in the same millisecond.
- Unique ids across servers
- Server-sent events (SSE)
- One HTTP response that the server keeps open and writes events into, as
text/event-stream. The browser reads it withEventSource. - Live sports scores
- Short code
- The few characters after the domain, like
k3Xa9Qz. The service maps each code to one long URL. - A URL shortener
- Signature
- An HMAC of the request body, computed with a secret shared with the customer, that lets the customer check who sent the request.
- Webhook delivery
- SKIP LOCKED
- A PostgreSQL option of
SELECT ... FOR UPDATE: rows that another transaction has locked are left out of the result instead of making the query wait. - A job scheduler
- SLI
- Service level indicator: a measured ratio, the number of good events divided by the total number of events.
- Measuring a service
- SLO
- Service level objective: the target for an SLI over a time window, such as 99.9% of checkouts succeed over 30 days.
- Measuring a service
- Sorted set
- A Redis type that keeps unique members ordered by a numeric score, with each lookup in O(log N).
- A game leaderboard
- Split brain
- Two servers both accept writes as primary at the same time. Their data diverges, and one side has to be thrown away or merged by hand.
- Database failover
- SSRF
- Server-side request forgery: a user makes your server send a request to an address they choose, such as an internal one.
- Link previews
- Stale position
- The last position a driver sent before their app stopped reporting. The driver may be far away, or offline.
- Matching riders and drivers
- Status change
- A user going from offline to online or from online to offline. A heartbeat from a user who is already online does not count as one.
- Online status
- Step
- One small change to the document, such as "insert 2026-11-03 at position 412". A client sends steps in batches.
- Shared document editing
- Stickiness
- The same user gets the same answer for a flag on every request and on every server.
- Feature flags
- Synchronous replication
- The primary reports a commit as done only after a replica confirms it has the change. A write the client saw succeed is then on two machines.
- Database failover
- Tamper evident
- A change to stored records can be detected afterwards. It does not mean the change was prevented.
- An audit log
- Tenant
- One customer company. Every row of data belongs to exactly one tenant, marked by a
tenant_idcolumn. - Multi-tenant SaaS data
- Tie-break
- The rule that orders two players with the same points, here the one who reached them first.
- A game leaderboard
- Timeout
- The longest a caller waits for an answer before it gives up and moves on. Here, a setting on the HTTP client that calls the recommendation service.
- When a dependency is down
- TOAST
- PostgreSQL’s storage for large field values: it compresses them or moves them into a side table, without any change to your queries.
- A paste service
- Transcoding
- Decoding a video and encoding it again at another resolution or bitrate. Here, ffmpeg makes three smaller versions of each original.
- Video upload pipeline
- TTL
- Time to live: how many seconds a cache serves a stored page before it counts as stale.
- Caching a news site
- Unknown outcome
- The state after a request times out: the provider may have charged the card, or may never have seen the request.
- Taking payments
- Upsert
- One statement that inserts a row, or updates it if a row with the same key already exists.
- Counting page views
- Upsert
- A write that inserts the row if its primary key is new and updates it if the key already exists.
- Moving to a new database
- Version
- An integer: the number of steps the server has accepted for a document. Each accepted step adds 1.
- Shared document editing
- Version change module
- A piece of code that turns a response from the current shape into the shape of one older version.
- Changing a public API
- Version pinning
- The API records which version each API key uses and answers that key in that version until its owner changes it.
- Changing a public API
- Version vector
- One counter per device on each file. A device adds 1 to its own counter each time it changes the file.
- File sync
- Visibility timeout
- In Amazon SQS, the time a received message stays hidden from other workers. If the worker does not delete it in that time, the message shows up again.
- Image thumbnails
- Waiting room
- A queue in front of the seat map that lets fans in at a fixed rate and shows everyone else their place in line.
- Booking concert tickets
- WAL archiving
- PostgreSQL hands each finished write-ahead log segment, 16 MB by default, to a command that copies it off the server. A base backup plus those segments can rebuild the database at any moment in between.
- A backup plan
- Webhook
- An HTTP POST that your service sends to a URL the customer registered, when an event happens on your side.
- Webhook delivery
- Webhook
- An HTTP request the provider sends to your server when something happens on its side, such as a payment that succeeded.
- Taking payments
- Weight
- A number stored with each suggestion that ranks it, here the product’s sales over 30 days.
- Search autocomplete