Typed boundary for one durable, fenced background job.
Concord values are persisted as plain maps so native nested-field comparisons can inspect lease and fencing fields.
Summary
Types
@type kind() ::
:repair_blob | :cross_cluster_put | :cross_cluster_delete | :scrub | :cleanup
@type state() :: :pending | :running | :completed | :failed
@type t() :: %ExStorageService.Metadata.Models.Job{ attempts: non_neg_integer(), completed_at_ms: non_neg_integer() | nil, created_at_ms: non_neg_integer(), fencing_token: non_neg_integer(), job_id: binary(), kind: kind(), last_error: binary() | nil, lease_until_ms: non_neg_integer(), max_attempts: pos_integer(), next_attempt_at_ms: non_neg_integer(), operation_id: binary(), owner_generation: pos_integer() | nil, owner_node: binary() | nil, payload: map(), schema: 2, state: state(), updated_at_ms: non_neg_integer() }