Also in our system we have what we call transient subscriptions. Transient subscriptions are like leases only they expire on client unavailability.
So a subscription lasts only until the client goes offline. In case of resourced subscriptions it will last until resource is offline and in case of bareJID subscription it will last until no resource for this JID is online anymore. Currently we have implemented it as node config option pubsub#transient_subscriptions boolean that sets the default for the node, and subscription option that sets this for each subscription. -- Mads Randstoft