David Hull <> wrote on 09/03/2004 12:11:26 PM:
> Heartbeating is typically used in the related case of determining
> whether a particular server is alive. The server agrees to send out
> messages (generally multicast) at no longer than an agreed interval
> (in some variations, the heartbeat message contains a "time until
> next heartbeat" field, allowing for a variable interval between
> heartbeats). If a client does not hear from a server for more than
> a given number of heartbeat periods, it assumes that the server is
> down. It's not hard to see that a variation of this could work in
> the resource world: The consumer sends the provider periodic
> heartbeats, and if the provider misses too many heartbeats, it
> assumes the resource is no longer needed.
I think this confuses the use of heartbeating in a substantial way.
Heartbeating is fundamentally about determining "dead or alive" and
is not from the consumer to the producer. Additionally, as you point
out it is typically a multicast where as in the scenario you describe
it would be a point to point message.
I do agree that there is a pattern here but I would be very careful
of calling it heartbeating. It is more like message activation with
an LRU termination. Specifically, it is much more like "this producer
hasn't be touched for a while (perhaps predetermined interval) so it
is subject to termination".
Tom