Skip to content

Changelog

Version v0.2.0

Highlights

This release brings OpenTelemetry observability, runtime job validation, a NATS notify adapter, and significant API improvements with several breaking changes.

Breaking Changes

  • API split: createQueuert split into createQueuertClient and createQueuertInProcessWorker for clearer separation of concerns
  • Adapter API simplified: Removed provideContext, made txContext optional
  • Log API changed: Tuple args replaced with named data/error properties
  • Renamed JobSequence to JobChain across the entire API
  • Simplified migrateToLatest API: Removed nested transaction support

New Features

  • ObservabilityAdapter (@queuert/otel): Full OpenTelemetry integration with histogram metrics for duration tracking and gauge metrics for worker idle/processing state
  • JobTypeRegistry: Compile-time and runtime validation with schema adapters for Zod, Valibot, and TypeBox
  • NATS notify adapter (@queuert/nats): New notify adapter with optional JetStream KV support
  • Job attempt middlewares: Contextual logging support during job processing
  • Deferred scheduling: Schedule jobs for future execution via schedule option
  • Thundering herd optimization: Hint-based notification system to reduce unnecessary polling

Improvements

  • Single-statement migrations for cleaner provider implementations
  • Restructured documentation into modular design docs
  • Reorganized examples to single-purpose design with clear naming conventions
  • Relaxed peer dependency version constraints for nats and otel
  • Safe SQL literal helpers (pgLiteral, sqliteLiteral)
  • Dual-context type separation in StateAdapter

Bug Fixes

  • Prevent context leakage to independent chains during job processing
  • Fix orphaned timers blocking process exit
  • Correct GetStateAdapterJobId type extraction for dual-context adapters
  • Suppress notify_context_absence warning when notify adapter is not set

Packages

All packages released at 0.2.0: queuert, @queuert/postgres, @queuert/sqlite, @queuert/redis, @queuert/nats, @queuert/otel.