A build that keeps failing: how many attempts have failed, the latest
error, and when it is tried again. It retries on its own, except that a
build failing for a reason no row explains pauses the transform after a
few attempts (next_attempt_at is then when it paused). Fix the cause,
resume a paused transform, and the next attempt goes through.
Summary
Types
@type t() :: %Trellis.BackfillFailure{ attempts: non_neg_integer(), last_error: String.t(), next_attempt_at: DateTime.t(), source_table: String.t() }