mAiSight

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.