"Type": "Choice",
"Resource": "HandleReady",
"Choices": [
+ {
+ "StringEquals": ":node_up",
+ "Next": "ReadyNodeUp"
+ },
+ {
+ "StringEquals": ":node_down",
+ "Next": "ReadyNodeDown"
+ },
{
"StringEquals": ":anti_entropy",
"Next": "AntiEntropy"
"InputPath": "",
"OutputPath": ""
},
+ "QuorumNodeUp": {
+ "Type": "Task",
+ "Resource": "HandleNodeUp",
+ "TransitionEvent": ":node_added",
+ "Catch": [],
+ "InputPath": "",
+ "OutputPath": "",
+ "ResourcePath": "",
+ "Next": "Quorum",
+ "End": false
+ },
+ "ReadyNodeUp": {
+ "Type": "Task",
+ "Resource": "HandleNodeUp",
+ "TransitionEvent": ":node_added",
+ "Catch": [],
+ "InputPath": "",
+ "OutputPath": "",
+ "ResourcePath": "",
+ "Next": "Ready",
+ "End": false
+ },
"Quorum": {
"Type": "Choice",
"Resource": "AwaitQuorum",
{
"StringEquals": ":quorum",
"Next": "Ready"
+ },
+ {
+ "StringEquals": ":node_up",
+ "Next": "QuorumNodeUp"
+ },
+ {
+ "StringEquals": ":node_down",
+ "Next": "QuorumNodeDown"
}
],
"InputPath": "",
"OutputPath": ""
},
+ "ReadyNodeDown": {
+ "Type": "Task",
+ "Resource": "HandleNodeDown",
+ "TransitionEvent": ":node_removed",
+ "Catch": [],
+ "InputPath": "",
+ "OutputPath": "",
+ "ResourcePath": "",
+ "Next": "Quorum",
+ "End": false
+ },
+ "QuorumNodeDown": {
+ "Type": "Task",
+ "Resource": "HandleNodeDown",
+ "TransitionEvent": ":node_removed",
+ "Catch": [],
+ "InputPath": "",
+ "OutputPath": "",
+ "ResourcePath": "",
+ "Next": "Quorum",
+ "End": false
+ },
"AntiEntropy": {
"Type": "Task",
"Resource": "HandleAntiEntropy",