Ferricstore.Commands.Stream.AtomicAppend.Plan (ferricstore v0.11.5)

Copy Markdown View Source

Deterministic, read-only result of planning one compact Stream append.

entries is the complete value-validated durable projection (type marker when needed, entry rows, and one final metadata row). publication data is kept here so the Raft state machine can explicitly publish the member catalog only after that projection has been appended successfully.

Summary

Types

member_entry()

@type member_entry() :: {{binary(), {non_neg_integer(), non_neg_integer()}}, binary()}

t()

@type t() :: %Ferricstore.Commands.Stream.AtomicAppend.Plan{
  entries: [{binary(), binary(), non_neg_integer()}],
  key: binary(),
  latest_update: tuple() | nil,
  member_entries: [member_entry()],
  member_prefix: binary(),
  results: [term()]
}