Bedrock.DataPlane.Sequencer.State (bedrock v0.5.3)

View Source

State structure for Sequencer GenServer processes.

Maintains Lamport clock state with microsecond-based version counters:

  • known_committed_version_int: Highest version confirmed as durably committed (for read requests)
  • last_commit_version_int: Last version handed to a commit proxy
  • next_commit_version_int: Next version to assign to a commit proxy
  • epoch_baseline_version_int: Starting point from previous epoch's last committed version
  • epoch_start_monotonic_us: Monotonic time when this epoch started

Versions are generated using microsecond offsets from the epoch baseline, ensuring time-correlated version numbers while maintaining strict monotonic progression. The Lamport clock chain is formed by the pair (last_commit_version, next_commit_version).

Summary

Types

t()

@type t() :: %Bedrock.DataPlane.Sequencer.State{
  director: pid(),
  epoch: Bedrock.epoch(),
  epoch_baseline_version_int: integer(),
  epoch_start_monotonic_us: integer(),
  known_committed_version_int: integer(),
  last_commit_version_int: integer(),
  next_commit_version_int: integer()
}