Re: Atom and prev links

Erik Mogensen <[email protected]> Fri, 28 Jun 2013 18:09:53 +0200
Newsgroups gmane.comp.web.services.rest
Message-ID <CADbGZjYwHJGKhp6F1jbZihUtZu9atUSudkhcS1T7wt3sAsvZfA@mail.gmail.com>
On Fri, Jun 28, 2013 at 12:16 PM, Greg Young <[email protected]>wrote:

> **
>
>
> We have a mature atom implementation for distribution of event streams
> and as always the devil is in the details...
>
> The issue revolves around prev links. At some point on an atom feed
> you will hit the current item, prev will point to the next item that
> does not yet exist. Most implementations I can find 404 this uri and
> the client has the logic to keep polling the 404. This seems off to
> me, I would expect this to be a 204. Then if I change my uri structure
> it becomes a 404, otherwise it would seem that if I change my uri
> structure all prev uris would need to redirect to the new ones (which
> would be a rather large undertaking).
>
> I couldn't find any details on this in relevant specs, has anyone seen
> this?
>
> Greg, I'd just like to explain how we do more or less the same thing.  We
also use the prev link of the "first page" of a feed to link to the page
containing the items that "will be".  We find that it's an extremely
resilient way of dissipating information about things that fit in atom
feeds, and a relatively efficient system too.

Infinitely cacheable resources are nice, but instead of 404, or 204 and so
on, we expose an empty feed document, with a next link but no prev link.
 When things happen, the page (when refreshed) contains one or more
entries, and becomes cacheable.

Our "head" document is very small; contains no real data so it's easy to
generate; supports cache validation, and if it's incorrectly cached as
fresh by an intermediary or a caching client, it only impedes the ability
of clients to advance to the "newer" entries.  Eventually, they will
advance to the next state.

If I were to do this again, I might consider using 302 some other temporary
redirect, instead of the 404 or the empty feed; redirect back to the
current (infinitely cacheable) first page.  When a new item appears, the
302 would turn into the "new" first page" a 200 with new next/prev links,

I wonder if "Cache-Control" or "Retry-After" would be useful for 302
responses, to ask clients to back off under heavy load.
-- 
-mogsie-