Repository navigation
Description
Summary
Rate limits after the MVP: batch sync per partner, pull sync, provider lookups and record creation on Fastly; on Axum off by default and, when turned on, per task divided by the configured task count.
Part of #1558, server-side identity on every adapter. Plan ID T10, planned in an any row (no fixed wave; starts when its decision or reviewer is ready; after the MVP); priority P3, size M. Design: spec; order and dependencies: plan.
Requirements
ID-6 Rate limiting (after the MVP, DEC-15)
In the MVP, Fastly keeps main's limits on batch sync and pull sync and #1487's per-provider lookup limit, and Axum has none because the deployer's load balancer limits traffic (DEC-11). Until EZI-5, Fastly's limiter stays the existing fastly::erl bridge in the Fastly adapter, and T21 keeps it when it moves the handlers into core. After the MVP, provider lookups, batch sync, pull sync and record creation are rate limited on every supported adapter except Axum, where every limit stays off by default; batch sync is keyed per partner and the other keys follow DEC-15, and an Axum limit turned on in configuration runs per task, divided by the configured task count.
Current state
What the code does today, from the design's survey at the revisions it names:
- ID-6: Fastly Edge Rate Limiting is the only limiter; record creation is limited nowhere; Collect server-side identity provider EIDs in a single page-load write #1487 keys lookups on the IP-derived EC prefix, so everyone behind one IPv4 address or IPv6 /64 shares a budget.
Acceptance criteria
- ID-6: In the MVP, Fastly's existing limits still refuse or skip over-limit requests after T21 and Axum's default configuration applies no limit
- ID-6: After the MVP, per-adapter tests hit each limit, and an Axum limit turned on for two tasks refuses at half the limit
Dependencies
Blocked by:
- Rate limiter: Fastly Edge Rate Limiting, and an in-memory backend for Axum (after the MVP) edgezero#477 Rate limiter: Fastly Edge Rate Limiting, and an in-memory backend for Axum (after the MVP) (new in this plan)
- One identity app in core for every adapter #1600 One identity app in core for every adapter (new in this plan)
Waits on these decisions:
- DEC-15 Rate limiting after the MVP (open). Rate limiting is punted past the MVP: the keys (batch sync stays per partner), EdgeZero's limiter with its Cloudflare and Spin backends, and new limits on record creation and on Axum. Blocks EZI-5, EZI-5c, EZI-5s and T10.
Activity