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
