How andiswarm/go-taskengine works
Go-TaskEngine is a Redis-backed Go task execution engine, not a web service. Producers create and enqueue immediate or delayed task messages; the server claims ready work, dispatches it to task-type handlers, and records completion, retry, or archive transitions. The Redis store also supports dead-letter replay and cleanup; server maintenance handles lease renewal and expired-task recovery. Examples demonstrate simulated image-processing and C2PA signing workflows. Edges reflect the README and sampled implementations; some example wiring and unsampled store operations are represented only where documented.
Main entry points: server.go Server Scheduler · client.go Client Enqueue · handler_mux.go Handler Router · main.go Image Worker
Components 19
Task APIs
- Client Enqueue
client/client.go - Task Message
model/model.go - Storage Contract
storage/storage.go
Worker Engine
- Server Scheduler
server/server.go - Handler Router
server/handler_mux.go - Timer Wheel
internal/timer/timer.go - Token Bucket
internal/limiter/bucket.go
Redis Persistence
- Redis Store API
redisstore/redisstore.go - Redis State Machine
internal/redisstore/rdb.go - Dead Letter Operations
storage/storage.go
Example Workloads
- Image Producer
examples/image-processing/cmd/producer/main.go - Image Handler
examples/image-processing/image.go - Image Worker
examples/image-processing/cmd/worker/main.go - C2PA Producer
examples/c2pa-signing/cmd/producer/main.go - C2PA Handler
examples/c2pa-signing/signing.go - C2PA Worker
examples/c2pa-signing/cmd/worker/main.go
Other components
- Task Producer
- Worker Operator
- Redis
Connections 22
- Task Producer → Client Enqueue: creates tasks
- Client Enqueue → Task Message: builds envelope
- Client Enqueue → Storage Contract: enqueues or schedules
- Server Scheduler → Storage Contract: claims and transitions
- Server Scheduler → Handler Router: dispatches tasks
- Handler Router → Image Handler: routes by type
- Handler Router → C2PA Handler: routes by type
- Server Scheduler → Timer Wheel: schedules wakeups
- Server Scheduler → Token Bucket: acquires tokens
- Storage Contract → Redis Store API: implemented by
- Redis Store API → Redis State Machine: delegates to
- Redis State Machine → Redis: reads and writes state
- Token Bucket → Redis: updates token state
- Worker Operator → Image Worker: starts worker
- Image Worker → Server Scheduler: runs server
- Image Worker → Handler Router: registers handler
- Image Producer → Client Enqueue: enqueues task
- Worker Operator → C2PA Worker: starts worker
- C2PA Worker → Server Scheduler: runs server
- C2PA Worker → Handler Router: registers handler
- C2PA Producer → Client Enqueue: enqueues task
- Dead Letter Operations → Redis State Machine: supports archive operations