RaftEx.Server.Config (raft_ex v0.1.0)

View Source

Immutable per-server configuration record.

Constructed once during RaftEx.Server.init/1 and then stored inside the server state map under the :cfg key. Fields are never mutated at runtime except for effective_machine_version, effective_machine_module, and effective_handle_aux_fun, which are updated when the machine is upgraded.

Summary

Types

t()

@type t() :: %RaftEx.Server.Config{
  counter: term(),
  effective_handle_aux_fun: {:handle_aux, 5 | 6} | nil,
  effective_machine_module: module(),
  effective_machine_version: RaftEx.Machine.version(),
  id: RaftEx.Types.server_id(),
  log_id: binary(),
  machine: RaftEx.Machine.machine(),
  machine_version: RaftEx.Machine.version(),
  machine_versions: [{RaftEx.Types.index(), RaftEx.Machine.version()}],
  max_append_entries_rpc_batch_size: pos_integer(),
  max_pipeline_count: pos_integer(),
  metrics_key: atom(),
  metrics_labels: map(),
  min_recovery_checkpoint_interval: non_neg_integer(),
  system_config: map(),
  uid: RaftEx.Types.uid()
}