Temporary leases could be very useful if against something like a trending topic ( a la Twitter style ) which itself has a temporary nature ( in terms of popularity ). We shouldn't remove functionality useful for future use cases we can't predict, and it's low cost to maintain ;).
Sent from my iPhone On 17 Oct 2009, at 06:21, R P <[email protected]> wrote: Thanks! This is basically what I'd expected, but it's good to have it confirmed. ;) From a subscriber perspective, that seems pretty easy to implement - just accept refreshes from the hub whenever, and if a lease runs out, then resubscribe. So, awesome. As far as clarifying the spec: * In section 6.1, it lists lease_seconds as "Number of seconds for which the subscriber would like to have the subscription active." This implies that the subscription will not be active (ie, expired) after that time, so this should really be rephrased to specify that it's the maximum number of seconds they want to wait for a refresh. * Similar change in section 6.2, with lease_seconds in the hub verification. * Section 6.2.1 implies that leases where the subscriber specifies the lease_seconds are temporary, and the hub won't try to refresh those; is that still accurate? If not, it should be changed. If it is, section 6.3 should be clarified, since right now it seems to say that before *any* lease expires hubs *must* try to refresh. * Right now it's unspecified whether notifications may be delivered after a lease expires. On second thought, this is fine - it seems pretty reasonable to allow a hub to deliver notifications after the lease expires, but not to necessarily guarantee it, for example if they're queued for delivery. Thinking more about temporary leases now. Are there any use cases for them? If not, then it'd be simpler not to have them in the spec, and just assume that the hub will always try to refresh a subscription when it expires. Any use cases I can think of are handled better by explicitly unsubscribing anyway. --Ravi On Fri, Oct 16, 2009 at 11:32 PM, Brett Slatkin <[email protected]> wrote: Hi Ravi, Sorry for the delay in responding. 2009/10/11 Ravi Pinjala <[email protected]>: > > I'm trying to test that my aggregator works with automatic subscription > refreshing properly, but after setting a really short (10 minutes) lease > interval, I don't get any kind of request from the hub to refresh the > subscription. Also, I'm still getting notifications, so it seems that > the lease lasts longer than what's returned in lease_seconds by the hub. > > So, my question is, how strictly is lease_seconds interpreted by the > hub? is it intended to mean that the subscription will end at that time, > or that it won't end until some unspecified point after that time? And > if it's the latter, how long should a client wait before giving up on > the automatic refreshing, and trying to resubscribe? Great questions. Right now the reference hub implementation only clears old leases once per day. I'm soon going to be changing this to be much more fine grained (probably every 60 seconds). That explains the behavior you are likely seeing. Practically, Hubs SHOULD make a best-effort attempt to clean up your subscription within the lease time-frame. They indicate the effective lease_seconds value in the subscriber verification request that they SHOULD honor, but it's not a "MUST" in the spec. In terms of intent and the spec, subscribers should assume that if they have not received a subscription auto-refresh by the end of the lease seconds that something is broken and they should go and resubscribe to the feed. Is that in line with your expectations? Is there any way the spec could make this more clear? Thanks for all the feedback, -Brett
