92944ef90bfd
Feature detail batch (lazy-loaded)
Fan-out variant of /features/{id}/details for callers that need to resolve many features at once. POST is used so the id list isn't constrained by URL length.
Per-id caching is identical to the single endpoint (Redis-backed keyed on the id), so a batch that's a superset of previously requested ids costs nothing extra for the overlap. Partial success is preserved: a single failed upstream fetch sets cache: "error" with an error string on that entry without failing the whole request — or cache: "error-cached" when a recent failure was replayed from the negative cache instead of calling the source again. Missing ids land in the response with not_found: true.
A large batch against cold caches can run out of the request's time budget before every id has been tried. The response array is positional, so the ids that were never attempted come back with cache: "skipped" and an error saying so, rather than as blanks. This one is worth retrying — unlike error-cached, nothing has failed and a smaller batch will resolve them. Entries already resolved in the same response are unaffected, and their detail is cached, so the retry only pays for what is left.
Bounded by the plan's max_batch_size, and by a system ceiling of 500 ids per request that applies to every caller.
Request body
Response
Per-id detail results (one entry per requested id, in order)