Tables-heavy fixture
This fixture renders prose that mostly lives inside tables — headers, cells, captions, and footers. Marks must appear inside <th>, <td>, and <caption> text, and the IntersectionObserver attached to [data-block-id] on the table itself must fire when the table enters the viewport.
Retry strategies
When a request fails with a transient error, clients retry with backoff and jitter. Rate limit responses (429) carry a Retry-After header which interacts with the backoff schedule. Idempotency keys let the server deduplicate retried requests.
| Strategy | Used with | Defends against | Notes |
|---|---|---|---|
| backoff | retries | thundering herd | Doubles each attempt. |
| jitter | backoff | synchronized retry storms | Adds random offset. |
| rate limit | every endpoint | abuse | 429 with Retry-After. |
| idempotency | webhook delivery, payments | duplicate writes | Key in Idempotency-Key header. |
| signing key | webhook delivery | replay attack | HMAC over body + timestamp. |
Caption: Retry primitives used in the API. Each row mentions at least one term; the caption uses two.
Pagination
There are three styles: offset, keyset, and cursor pagination. The shorter term cursor also has an entry; cursor pagination must beat cursor via longest-first inside the cell.
| Style | Stability under inserts | Random access | Recommended |
|---|---|---|---|
| offset | unstable | yes | no |
| keyset | stable | no | yes for ranges |
| cursor pagination | stable | no | yes for streams |
Tables can be deeply nested in some hosts. Below is a two-table layout with the same content rendered side-by-side:
| Encoding | Bytes per char |
|---|---|
| ASCII | 1 |
| UTF-8 | 1–4 |
| UTF-16 | 2 or 4 |
| Serialization | Type | Schema-bearing |
|---|---|---|
| JSON | text | no |
| Protobuf | binary | yes |
| MessagePack | binary | no |
| CBOR | binary | optional |
Transport options
Real-time delivery can use SSE, long-poll, WebSocket, or gRPC over HTTP/2. Each carries trade-offs:
| Transport | Direction | Browser support | Notes |
|---|---|---|---|
| SSE | server → client | native | one-way, text frames |
| long-poll | server → client | native | HTTP, held open |
| WebSocket | bidirectional | native | upgrades from HTTP |
| gRPC | bidirectional | with proxy | Protobuf over HTTP/2 |
Encoding tables
Two more terms — base64 and percent-encoding — appear in a caption and a footer:
| Encoding | Use case |
|---|---|
| base64 | binary blobs in JSON |
| percent-encoding | values inside a query string |
| UTF-8 | request and response bodies |
Caption: Encodings used in the query string and in JSON payloads.
Cache and security headers
| Header | Purpose | Term |
|---|---|---|
ETag | cache validation | ETag |
Vary | cache key | Vary |
Origin | CORS preflight | CORS |
X-CSRF-Token | form submission | CSRF |
Closing prose
After many tables, a regular paragraph: webhook delivery uses an idempotency key, an HMAC signing key for the signature, and a small jitter on retries to spread load. cursor pagination is the recommended style for streaming endpoints over SSE or WebSocket.