classy is configured via OTP application environment variables and callbacks.
Type: mfargs()
A callback that classy executes during startup. It allows business applications to set up other hooks using a more type-safe API.
Type: file:filename()
Default: "."
Directory where persistent data is stored. It should be writable.
Type: pos_integer()
Default: 16
Number of bytes used in random identifiers, such as site IDs and cluster IDs.
WARNING: this value should be sufficiently large to account for the birthday problem. Note that new cluster IDs are created every time a node leaves a cluster, so the number of unique random IDs is not limited to the number of sites.
Type: non_neg_integer()
Default: 1000
Unit: ms
Maximum interval of time that can pass between the membership CRDT server receiving an update and the moment it propagates it to the peers.
Type: pos_integer()
Default: 1
Minimum number of known peers necessary to advance run level
from single to cluster.
Type: [classy:node_set_name()]
Default: []
List of node set names used to additionally restrict when the node is considered joined to a cluster. Sets from the lists are combined using set intersection operation.
Type: [classy:node_set_name()]
Default: []
List of node set names used to additionally restrict when the node is considered having a quorum. Sets from the lists are combined using set intersection operation.
Type: pos_integer()
Default: 5000
Unit: ms
2PC coordinator re-sends outcome of a transaction to the participants at this interval.
Type: pos_integer() | infinity
Default: infinity
Unit: s.
Automatically kick sites that have been down longer than this value from the cluster.
Note: to prevent network-isolated nodes from kicking their peers, quorum among the running nodes is required to perform the act.
Type: pos_integer()
Default: 1w
Unit: s
Forget information about inactive (kicked) sites after this period of time.
Note: cleanup procedure may lead to the following situation:
Since at step 4 we removed the data about event 2, A will reappear in the cluster.
So forget_after should be set to a fairly large value to make sure it doesn’t cover nodes that can go back online.