Skip to content

Releases: openjobspec/ojs-backend-postgres

v0.4.0

20 Apr 17:26

Choose a tag to compare

Added

  • MIT License
  • Configurable operational parameters via environment variables (pool sizes, retention periods, scheduler intervals, timeouts)
  • Structured logging with log/slog across all packages
  • Unit tests for core package (state, validation, backoff, duration, UUID, errors)
  • Configuration tests for environment variable parsing
  • .golangci.yml linter configuration
  • .env.example documenting all supported environment variables
  • CONTRIBUTING.md with development setup guide
  • GitHub Actions CI pipeline (lint, test, build)

Changed

  • Replaced log.Printf with log/slog structured 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

09 Mar 20:14

Choose a tag to compare

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.0

ojs-backend-postgres v0.2.0

28 Feb 15:29

Choose a tag to compare

  • 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

23 Feb 09:48

Choose a tag to compare

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 dequeueSELECT FOR UPDATE SKIP LOCKED for safe concurrent job processing
  • Real-time notifications — PostgreSQL LISTEN/NOTIFY for 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)