Skip to content

Configuration Engine

General Philosophy

This engine is responsible for keeping track of the settings in the user's configuration file. The general purpose is to read the user's configuration once and cache the information within.

User Configuration Format

The configuration format is a TOML file with the exact fields left up to the implementation. However, there should be a field that the user specifies where any state snapshotting happens

Below is an example of a valid configuration file.

[dump]
dump = 'anoma_iex.dmp'
[node]
name = 'anoma'

Initialization

The engine just records information on the contents of the user's configuration.

State

typedstruct do
  field(:configuration, Configuration.configuration_map(), enforce: true)
  field(:logger, Router.Addr.t(), enforce: false)
end

Public API

@spec snapshot(Router.addr()) :: :ok

The snapshot method is responsible for saving the current state of all current machines and persisting it to the configured dump location.

@spec delete_dump(Router.addr()) :: :ok

Deleting the dump is a convenience for deleting the persisted dump. This is useful for when state updates may be incompatible, or if the user wishes to restart all state to the genesis state.