Fact.Genesis.Event.DatabaseCreated.V1 (Fact v0.2.0)

View Source

Event representing the creation of a new Fact database.

This event is emitted by the Fact.Genesis.Decider when a valid Fact.Genesis.Command.CreateDatabase.V1 command has been processed. It records all the configuration needed to bring a new database into existence as a fact, but it does not itself create the database on disk.

This event stores the database identity, system compatibility information (Elixir, Erlang/OTP, OS versions), event adapters, file and index configurations, ledger and lock file details, record handling, and storage configuration.

The Fact.Bootstrapper uses to_context/1 to convert this event into a Fact.Context suitable for starting a new database instance via the supervision tree.

Summary

Types

component_config()

@type component_config() :: %{
  family: :atom,
  version: :positive_integer,
  options: map()
}

t()

@type t() :: %Fact.Genesis.Event.DatabaseCreated.V1{
  database_id: Fact.database_id(),
  database_name: String.t(),
  elixir_version: String.t(),
  erts_version: String.t(),
  event_id: component_config(),
  event_schema: component_config(),
  fact_version: String.t(),
  index_checkpoint_file_decoder: component_config(),
  index_checkpoint_file_encoder: component_config(),
  index_checkpoint_file_name: component_config(),
  index_checkpoint_file_reader: component_config(),
  index_checkpoint_file_writer: component_config(),
  index_file_decoder: component_config(),
  index_file_encoder: component_config(),
  index_file_name: component_config(),
  index_file_reader: component_config(),
  index_file_writer: component_config(),
  ledger_file_decoder: component_config(),
  ledger_file_encoder: component_config(),
  ledger_file_name: component_config(),
  ledger_file_reader: component_config(),
  ledger_file_writer: component_config(),
  lock_file_decoder: component_config(),
  lock_file_encoder: component_config(),
  lock_file_name: component_config(),
  lock_file_reader: component_config(),
  lock_file_writer: component_config(),
  os_version: String.t(),
  otp_version: String.t(),
  record_file_decoder: component_config(),
  record_file_encoder: component_config(),
  record_file_name: component_config(),
  record_file_reader: component_config(),
  record_file_writer: component_config(),
  storage: component_config()
}

Functions

to_context(event)