In this PR we introduce a stricter interface for what a Membership is in a membership package. The membership defines an 'observable membership' for the application. Only containing members that are an active part of the membership eg. No faulty, leave or tombstone members will be observable.
It introduces what a Member is via an interface and makes sure that the swim.Member implements it.
Lastly it adds an event that is triggered when changes happen to the membership. This event is different from the swim event that contains changes in that it contains the Before and After state of a Member that can be used by the application to respond to.
This PR is part 2 for identity carry over.
In this PR we introduce a stricter interface for what a
Membership
is in amembership
package. The membership defines an 'observable membership' for the application. Only containing members that are an active part of the membership eg. Nofaulty
,leave
ortombstone
members will be observable.It introduces what a
Member
is via an interface and makes sure that theswim.Member
implements it.Lastly it adds an event that is triggered when changes happen to the membership. This event is different from the swim event that contains changes in that it contains the
Before
andAfter
state of aMember
that can be used by the application to respond to.