Skip to content

Repository files navigation

TaskHarbor (Work In Progress)

TaskHarbor is a Go background jobs and simple workflows framework with a strict semantics contract and pluggable drivers.

What TaskHarbor is focusing on

  • Stable core API: define handlers, enqueue jobs, run workers, without coupling your app to a specific backend.
  • Pluggable drivers: start with in-memory for tests/local, Postgres for production; more drivers can be added later.
  • Consistent semantics across drivers: retries, backoff, scheduling (run_at), leases/visibility timeouts, idempotency keys, and DLQ behavior are part of the contract.
  • Driver conformance suite: every driver must pass the same behavior tests so semantics don’t drift.
  • Durable workflow primitives: chain, group, chord with crash-safe resumption (especially with the Postgres driver).
  • Go-native execution model: context cancellation, middleware hooks, predictable failure handling, minimal magic.
  • Operator-friendly: CLI-first dev and ops flow (inspect, retry, DLQ requeue) with optional observability hooks later.

How TaskHarbor differs from existing options

ProjectPrimary modelBackendsWorkflow storyWhat TaskHarbor does differently
TaskHarbor (this)Framework + semantics contractMemory + Postgres first (drivers)Chain, Group, Chord designed to be durable + crash-safeStable API + driver contract + conformance tests to keep semantics consistent across drivers
AsynqRedis-first task queueRedisScheduling + retries; workflows are not the core productTaskHarbor targets backend portability + workflow durability with a consistent contract
taskqJob queue library with multiple backendsRedis, SQS, IronMQ, memorySome composition patterns exist, but not a durable workflow contractTaskHarbor’s focus is strict semantics + conformance + durable chain/group/chord
RiverPostgres-first job systemPostgresPrimarily jobs; workflow layer is not the main abstractionTaskHarbor aims for a standard API that can support multiple drivers, not just Postgres
FaktorySeparate job server + language clientsFaktory serverServer-centric orchestrationTaskHarbor is a Go-native framework with drivers and workflow primitives, not a standalone job server
NeoqQueue-agnostic job libraryMultiple (queue adapters)Jobs-first; workflows not the main pitchTaskHarbor emphasizes a strict semantics contract + conformance suite + durable workflows
TemporalDurable workflow platformTemporal serviceBest-in-class workflows (signals/timers/history)Different category: TaskHarbor is intentionally smaller and simpler than Temporal

Notes

  • TaskHarbor is at-least-once by design. Handlers must be idempotent.
  • The differentiator is not “another queue”. It’s consistent semantics across drivers plus durable chain/group/chord workflows backed by conformance tests.

Non-goals (by design)

  • Not a Temporal-style workflow engine.
  • Not trying to out-feature every existing queue library.
  • Not shipping every backend on day one.

Status

  • Early development. See ROADMAP.md for milestones and guarantees.

About

TaskHarbor is a Go background job framework with a pluggable backend contract and a durable workflow layer.

Topics

Resources

Contributing

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages