The spec is explicit today, and deliberately so:
The feed is an interchange format, not an API: no pagination, no filtering, no authentication, no federation. — spec/v0.4/README.md
This issue is not a proposal to reverse that. It is to record the first real evidence that pushes on it, so the decision is re-made on data rather than drifting.
The evidence
https://eventos.wiki/events.json, a registered adopter feed, valid 0.4: 551,915 bytes, served in 26–51 s (measured three times today). Nothing about it is invalid, and the publisher is doing nothing wrong. But:
One feed is not a trend. But it is the largest adopter we have, and it is the shape the format encourages: a feed carries a community's whole history, and history only grows.
The tension
The "not an API" decision is a good one and buys a lot: any static host can serve OTE, no server code, no negotiation, one URL to remember. Pagination is the single thing most likely to erode that — the moment a consumer must follow links to be correct, "download the file" stops being a complete implementation, and every downstream tool grows a loop plus its failure modes.
So the question is not "should feeds paginate" but: is there a mechanism that helps large publishers without making the simple case harder?
Options worth weighing
- Do nothing. Feeds are allowed to be large; consumers get generous timeouts. Costs nothing, and the pressure is real but so far comes from one publisher.
- A non-normative convention for splitting by time, e.g. a feed per year plus a small index, using the existing extension mechanism instead of new core fields. Publishers with history opt in; consumers who ignore it still get a valid document.
- An optional
next link, RFC 5005 / JSON Feed style. Standard, well understood — but it is the option that changes what "consuming a feed" means, because a consumer that ignores next silently gets partial data. If this is ever adopted, the archived-vs-paged distinction matters: an archive link (older, immutable pages) is far safer than a paged one.
- Recommend serving
updatedAt-scoped subsets without any spec change — the publisher's choice of what to include, which is already allowed.
Options 2 and 4 need nothing from the schemas. Only 3 is a real spec change, and it is the one with the sharpest downside.
What would help decide
- How many adopters exceed, say, 200 KB or 5 s? Today the answer is: one of three.
docs/data/feed-health.json could record size and response time so this stops being anecdote.
- Do any consumers actually struggle, or is it only our own tooling's timeouts?
Not a v0.5 candidate yet — a decision that should be made with a second data point, not a first.
The spec is explicit today, and deliberately so:
This issue is not a proposal to reverse that. It is to record the first real evidence that pushes on it, so the decision is re-made on data rather than drifting.
The evidence
https://eventos.wiki/events.json, a registered adopter feed, valid 0.4: 551,915 bytes, served in 26–51 s (measured three times today). Nothing about it is invalid, and the publisher is doing nothing wrong. But:One feed is not a trend. But it is the largest adopter we have, and it is the shape the format encourages: a feed carries a community's whole history, and history only grows.
The tension
The "not an API" decision is a good one and buys a lot: any static host can serve OTE, no server code, no negotiation, one URL to remember. Pagination is the single thing most likely to erode that — the moment a consumer must follow links to be correct, "download the file" stops being a complete implementation, and every downstream tool grows a loop plus its failure modes.
So the question is not "should feeds paginate" but: is there a mechanism that helps large publishers without making the simple case harder?
Options worth weighing
nextlink, RFC 5005 / JSON Feed style. Standard, well understood — but it is the option that changes what "consuming a feed" means, because a consumer that ignoresnextsilently gets partial data. If this is ever adopted, the archived-vs-paged distinction matters: an archive link (older, immutable pages) is far safer than a paged one.updatedAt-scoped subsets without any spec change — the publisher's choice of what to include, which is already allowed.Options 2 and 4 need nothing from the schemas. Only 3 is a real spec change, and it is the one with the sharpest downside.
What would help decide
docs/data/feed-health.jsoncould record size and response time so this stops being anecdote.Not a v0.5 candidate yet — a decision that should be made with a second data point, not a first.