One thing that's sort of been bothering me. If the hub for some reason loses
a subscription, or if the subscriber loses connectivity for an extended
period and the hub drops the subscription, how does the subscriber know that
the subscription's been lost? In the worst case, the subscriber would wait
until lease_seconds runs out, and then see that the hub didn't auto-refresh
the subscription and resubscribe. However, this could take a while; the
reference hub uses a month for lease_seconds, IIRC, and it was mentioned in
another thread that wordpress uses 10 years (!!!). So, this can't really be
depended on.

The options I see for a subscriber are:

1) Pessimistically resubscribe whenever there aren't any updates for a
while. "For a while" is pretty subjective, though, and depends on the feed -
this will end up creating a lot of unnecessary sub requests. Plus, it
requires a lot of guesswork and some state tracking on the part of the
subscriber.

1a) Even more pessimistically, resubscribe periodically. This seems kind of
wasteful, but it's also the solution that's least subject to hub failures.

1b) Just set a really short (I'm thinking ~1 day) hub.lease_seconds value in
the request. This works as long as the hub respects the lease_seconds value,
but it's not required to.

2) Continue polling feeds, and resubscribe if updates happen that aren't
sent over PuSH. This would work, and seems like it would give the best of
both worlds, but it's a disappointing solution, because PuSH was supposed to
get rid of polling.

3) Assume that the hub never ever fails. This is great, until a hub fails.
;)

So yeah, I'm curious what everybody else on the list thinks.

--Ravi

Reply via email to