Parent applications employing Shoal typically using
GMSFactory.startGMSModule(...) API might find it limiting that Shoal's group
JoinNotificationSignal signifies the application employing it to be ready to
start its operations. This is particularly the case when products that have
sequences of services that have to be started that need to be part of a group
early on but also need the ability to know when the app is ready to be operated
For instance, where a load balancer is employing Shoal as the health monitoring
system by participating in it as a SPECTATOR member, and the cluster it is load
balancing also uses Shoal, the LB needs to know when the instances are ready to
Further, appserver instances in the cluster may want to know when an instance is
in ready state so that operations such as say, data replication can occur.
This RFE is for a JoinedAndReadyNotificationSignal which would signify to all
members of the group that the member is not only joined the group but is also
ready to start operations.
Additionally, the JoinNotificationSignal requires an additional API to return
the joined member's health state through a method getMemberState(). This would
cover for cases where an instance has already sent out a
JoinedAndReadyNotificationSignal and another instance needs to know the health
state of this member.
The state machine of an instance's startup should be starting, ready and then
alive. Both ready and alive signify an instance's ready and available state.