Releases: openjobspec/ojs-backend-postgres
Releases · openjobspec/ojs-backend-postgres
v0.4.0
Added
- MIT License
- Configurable operational parameters via environment variables (pool sizes, retention periods, scheduler intervals, timeouts)
- Structured logging with
log/slogacross all packages - Unit tests for core package (state, validation, backoff, duration, UUID, errors)
- Configuration tests for environment variable parsing
.golangci.ymllinter configuration.env.exampledocumenting all supported environment variablesCONTRIBUTING.mdwith development setup guide- GitHub Actions CI pipeline (lint, test, build)
Changed
- Replaced
log.Printfwithlog/slogstructured logging throughout - Scheduler now accepts configurable intervals instead of hardcoded values
- Backend constructor now accepts option functions for pool and retention config
- Dead letter listing now caps limit at 1000
Fixed
- Consistent error wrapping across all postgres package operations
- Missing
defer rows.Close()in workflow cancellation - Error wrapping in queue, dead letter, cron, worker, and scheduler operations
ojs-backend-postgres v0.3.0
v0.3.0
See the full release notes for details across all Open Job Spec projects.
Installation
docker pull ghcr.io/openjobspec/ojs-backend-postgres:v0.3.0ojs-backend-postgres v0.2.0
- docs: add configuration reference to README
- refactor: extract storage interface methods
- fix: handle connection timeout gracefully
- feat: add health check endpoint
- build: update go.mod dependency to latest core version
- feat: implement graceful shutdown with drain timeout
- fix: correct retry backoff calculation for edge cases
- perf: optimize batch dequeue query performance
- fix: resolve race condition in concurrent job completion
- refactor: extract common middleware chain
- feat: add metrics endpoint for monitoring
- fix: correct SKIP LOCKED query for high concurrency
- feat: add connection pool metrics
What's Changed
See the full release notes: https://github.com/openjobspec/openjobspec/blob/main/RELEASE_NOTES_v0.2.0.md
v0.1.0 — Initial PostgreSQL Backend Release
ojs-backend-postgres v0.1.0
A production-ready PostgreSQL-backed implementation of the Open Job Spec.
Highlights
- Full OJS compliance — Passes conformance levels 0–4
- Non-blocking dequeue —
SELECT FOR UPDATE SKIP LOCKEDfor safe concurrent job processing - Real-time notifications — PostgreSQL
LISTEN/NOTIFYfor immediate job pickup - Priority queues — Integer-priority ordering with concurrent-safe fetching
- Retry policies — Exponential, linear, and constant backoff with jitter
- Scheduled jobs — Enqueue jobs for future execution with absolute or relative timestamps
- Cron scheduling — Recurring jobs with cron expressions, timezone support, and overlap policies
- Workflows — Chain (sequential), Group (parallel), and Batch (parallel with callbacks)
- Dead letter queue — Inspect and retry permanently failed jobs
- Job deduplication — Unique keys with configurable conflict resolution (reject, ignore, replace)
- Worker heartbeats — Visibility timeout extension and automatic stalled-job reaping
- Queue management — Pause/resume queues, real-time statistics
- Batch enqueue — Atomically enqueue multiple jobs in a single request
- Graceful shutdown — SIGINT/SIGTERM handling with 30-second drain timeout
- Docker Compose — One-command setup with
make docker-up
Requirements
- Go 1.22+, PostgreSQL 12+ (16 recommended)