-
Node A fully in the cluster
-
Local state before (1):
{:pairs {}}
-
B wants to join
-
B sends
prepare-join-cluster
(1) -
And B play the log
-
B encounters (1)
- Pre:
{:pair {}}
- Post:
{:pairs {} :prepared {:b :a}}
- determines B will attach to A
- adds watch to A
- sends
notify-join-cluster
(2)
- Pre:
-
A encounters (1)
- Pre:
{:pair {}}
- Post:
{:pairs {} :prepared {:b :a}}
- determines B will attach to A
- no reactive commands
- Pre:
-
A encounters (2)
- Pre:
{:pairs {} :prepared {:b :a}}
- Post:
{:pairs {} :accepted {:b :a}}
- adds a watch to B
- sends
accept-join-cluster
(3)
- Pre:
-
B encounters (2)
- Pre:
{:pairs {} :prepared {:b :a}}
- Post:
{:pairs {} :accepted {:b :a}}
- ignores
- Pre:
-
B encounters (3)
- Pre:
{:pairs {} :prepared {:b :a}}
- Post:
{:pairs {:a :b, :b :a}}
- flushes outbox
- fully joined into cluster
- Pre:
-
A encounters (3)
- Pre:
{:pairs {} :prepared {:b :a}}
- Post:
{:pairs {:a :b, :b :a}}
- ignores
- Pre:
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.