Skip to content

longrun Package (Deprecated)

Deprecated

pkg/longrun has been deleted. All functionality has been replaced by:

See Devlog #13 for the full story of this transformation.

What was longrun?

longrun was a task orchestration package: Task, Runner, Baseline, Policy, TransientRule, failureHandler, AttemptStore. ~1500 lines wrapping errgroup + time.Ticker + retry logic.

Why was it killed?

It was make_u32_from_two_u16() — an abstraction that made the world worse, not better. Every concept it introduced (Baseline, Policy, ErrorCategory, ClassifierFunc, degraded mode) collapsed into retry.OnFunc with different parameters. The scheduler needed 5 minutes of errgroup + ticker, not a framework.

Where did it go?

longrun conceptReplaced by
Task + RunnerScheduler's runOnce / runLoop + errgroup
TransientRuleretry.On / retry.OnFunc (resilience.Option)
Baseline + PolicystrictRetryOptions / resilientRetryOptions in schedule
ErrorCategory + ClassifierFuncisNodeError / isServiceError in schedule
BackoffFuncbackoff.Func (resilience/backoff) — unchanged
AttemptStoreAttempt counter inside Option closure — per-call, no shared state
OTEL metricsrsotel.Plugin() (resilience/otel)
Degraded modeCatch-all retry.OnFunc(always, ...) with name "unregistered"

Historical docs

The sub-pages (pipeline, backoff, observability, roadmap) have been removed from navigation. They remain in git history for reference.

Apache 2.0 · Built in public · Contributions welcome