A row of the routing ledger: one recorded outcome of one routing attempt for one binding (ADR-0004, section 4). The ledger is append-only.
key is empty for key_refused, execution_id is empty where the
outcome names no execution, and reason is empty for every outcome but
two. For key_refused it holds the reason term as inspect/1 renders it
(see StatifierRouter); for send_refused, the outcome ADR-0006 adds
and its 2026-09-21 Note widens to any send this package refuses, it
holds that record's own word for the refusal (see
StatifierRouter.SendHandler). An empty key or an empty
execution_id therefore no longer names the outcome on its own: the
outcome column is read first, and ADR-0006, section 6 says what each
refusal reason leaves empty. See StatifierRouter.Schema for how a row
reaches a configured table.
Summary
Types
@type t() :: %StatifierRouter.Schema.Ledger{ __meta__: term(), binding_id: String.t() | nil, execution_id: String.t() | nil, id: StatifierRouter.Schema.Id.t() | nil, inserted_at: DateTime.t() | nil, key: String.t() | nil, message_id: String.t() | nil, outcome: String.t() | nil, reason: String.t() | nil, scope: String.t() | nil }