Reference · 39 terms
Glossary
Every short form used across the series. Inside a lesson, hover or tap any dotted term to see the same entry in place.
Method
- QPSQueries (requests) per second
- The request rate. A million requests a day is about 12 per second. Multiply by 2 to 10 for the busy peak.Lesson 0 →
- read-heavyRead-heavy
- A system with many more reads than writes, so caches and replicas matter most. A URL shortener is about 100 reads to 1 write.Lesson 0 →
- trade-offTrade-off
- A choice that gains one thing and loses another. A good answer names both sides and says when you would choose the other way.Lesson 0 →
Encoding and IDs
- 301301 Moved Permanently
- A permanent redirect that can be cached. Browsers may skip your server on later visits, so you lose analytics.Lesson 1 →
- 302302 Found
- A temporary redirect. Browsers do not cache it by default, so every click reaches your server.Lesson 1 →
- Base62Base62
- A way to write numbers with 0-9, a-z and A-Z: 62 characters that are safe in URLs. Seven characters give about 3.5 trillion codes.Lesson 1 →
- collisionCollision
- Two different inputs get the same code. Handle it with a unique rule in the database and a retry.Lesson 1 →
- KGSKey Generation Service
- A service that makes unique short codes in advance and hands them out in batches. Nothing needs checking at request time.Lesson 1 →
- SSRFServer-Side Request Forgery
- Tricking your server into fetching an internal address (like a cloud metadata endpoint) by sending it a crafted URL.Lesson 1 →
Rate limiting
- 429429 Too Many Requests
- The status code for rate limiting. It comes with a Retry-After header that says when to try again.Lesson 2 →
- fail closedFail closed
- If the limiter is down, reject requests. This is right for login and OTP, where unlimited tries allow brute force.Lesson 2 →
- fail openFail open
- If the limiter is down, let requests through. The API stays up, but it is not protected.Lesson 2 →
- leaky bucketLeaky bucket
- Requests wait in a queue and leave at a constant speed. Bursts become a steady flow.Lesson 2 →
- LuaLua script (Redis)
- A small script that Redis runs in one step, so nothing can interrupt it. A read-then-write like a token bucket update cannot race.Lesson 2 →
- Retry-AfterRetry-After header
- A header with the number of seconds (or a date) after which the client may try again.Lesson 2 →
- sliding windowSliding window
- Count the requests in the last N seconds, at any moment. This avoids the double burst at the edge of fixed windows.Lesson 2 →
- token bucketToken bucket
- A bucket that fills at a steady speed. Each request takes one token. Short bursts are allowed up to the bucket size, but the average rate stays fixed.Lesson 2 →
Data access
- keyset paginationKeyset (cursor) pagination
- Page by saying 'give me the rows after the last one I saw', using the sort key. It stays fast and stable at any depth.Lesson 3 →
- OFFSETOFFSET pagination
- Skip N rows with LIMIT/OFFSET. It is simple, but the database reads and throws away N rows, and results shift when data changes.Lesson 3 →
- opaque cursorOpaque cursor
- A token the client sends back without understanding it. The server can change what is inside whenever it wants.Lesson 3 →
- RelayRelay connections
- GraphQL's standard cursor paging: edges with cursors, plus pageInfo (hasNextPage, endCursor).Lesson 3 →
- tiebreakerTiebreaker column
- A unique column (usually the ID) added to the sort, so rows with equal values always keep the same order.Lesson 3 →
Uploads and delivery
- at-least-onceAt-least-once delivery
- A message may arrive more than once, but it is never lost. So consumers must be idempotent.Lesson 5 →
- DLQDead-letter queue
- A side queue for messages that keep failing. They stop blocking the main queue, and you can look at them and replay them.Lesson 5 →
- fan-outFan-out
- Turning one event into many deliveries, like one broadcast into a million notifications.Lesson 5 →
- magic bytesMagic bytes
- The first bytes of a file show its real type. Check them. Do not trust the file extension or the Content-Type.Lesson 4 →
- multipart uploadMultipart upload
- Split a large file into parts. The parts upload in parallel and can be retried one by one. The storage service joins them.Lesson 4 →
- presigned URLPresigned URL
- A web address with a time limit, signed with your credentials. Whoever holds it can upload or download one file directly to storage.Lesson 4 →
- SSEServer-Sent Events
- A one-way stream from the server to the browser over HTTP. It reconnects by itself and can resume with Last-Event-ID.Lesson 5 →
- WebSocketWebSocket
- A two-way connection between browser and server, opened with an HTTP upgrade. Use it when the client also sends messages often.Lesson 5 →
Classic components
- circuit breakerCircuit breaker
- After many failures, stop calling a dependency for a while and fail fast. Then test now and then to see if it works again.Lesson 7 →
- comboboxARIA combobox
- The accessibility pattern for an input with a popup list. It uses aria-expanded and aria-activedescendant.Lesson 6 →
- exponential backoffExponential backoff
- Double the wait between retries (1 s, 2 s, 4 s…) up to a limit. A struggling service gets time to recover.Lesson 7 →
- feature flagFeature flag
- A switch that turns a feature on or off, or gives it to a share of users, without a new deploy.Lesson 7 →
- IMEInput Method Editor
- Software for typing languages like Chinese or Japanese in several steps. Do not search while the user is still composing.Lesson 6 →
- jitterJitter
- A bit of random time added to retry delays, so many clients do not retry at the same moment.Lesson 7 →
- kill switchKill switch
- A flag that switches a feature off at once during an incident.Lesson 7 →
- LRULeast Recently Used
- A cache that removes the entry that was not used for the longest time. A hash map plus a doubly linked list makes it O(1).Lesson 7 →
- trieTrie (prefix tree)
- A tree where each path spells a prefix. If each node stores the top suggestions, autocomplete takes O(prefix length).Lesson 6 →