Strait uses PostgreSQL advisory locks to provide a durable, transactional job queue. No Redis, no RabbitMQ, no SQS — just the database you already run.
Queue mechanism
Postgres-backed advisory locks
Scheduling
Cron expressions + one-off
Run states
Full lifecycle tracking
Deduplication
Idempotency keys
Concurrency
Configurable per-job limits
Priority
Numeric priority queues
client.Jobs.Create(ctx, strait.JobInput{
Name: "send-invoice",
Queue: "billing",
MaxRetries: 3,
Backoff: strait.ExponentialJitter,
Timeout: 30 * time.Second,
})
client.Runs.Create(ctx, strait.RunInput{
JobID: "send-invoice",
Payload: invoiceJSON,
})