Repository navigation
CedroDB 0.5.0 — Persistent jobs and fenced atomic results
Pre-releaseCedroDB 0.5.0 brings persistent local jobs to the same Rust database used for documents, guarded inventory changes, outbox events and backups.
- Stable job IDs deduplicate insertion, including completed/dead jobs.
- Delayed availability, priorities and deterministic claim ordering.
- Durable leases, renewed expiration and stale/expired token rejection.
- Retry delays, bounded attempts, expired-job recovery and explicit dead-job redrive.
- An acknowledgement can atomically complete the job and save generated business documents/outbox events in one transaction.
- Shared safe-number job payloads across Rust, Node.js and Python; typed Job/LeasedJob APIs.
- Reserved internal mutation namespaces, strict queue record validation and atomic capacity failures without consuming an attempt.
- Executable worker recipes, real recorded recovery/inventory/queue scenarios, updated package READMEs and a gated roadmap toward 1.0.
Validation: 75 Rust tests, 43 Node tests and 49 Python tests (167 total), four native build targets, numeric/storage interoperability, standalone Python source rebuilds, strict TypeScript declarations and independent atomicity/fencing/backup review. The exact six public SDK recipes also execute successfully. Release artifacts retain their CI SHA-256 hashes.
Experimental pre-1.0. One handle/process owns the database; data stays in RAM and queue scans are O(n). Completed/dead jobs and history have no automatic retention. Applications own workers, clocks, periodic expired-job recovery and external-effect idempotency. Tokens fence one history, not diverged restored copies. Leave headroom for lease/error metadata; capacity errors roll back the transition. No production readiness or performance superiority claim is made.
Migration: log and backup formats are unchanged. _cedro.jobs. becomes a reserved prefix for generic writes; migrate ordinary collections using that prefix with 0.4 before upgrading. See docs/jobs.md, docs/migrations.md and docs/roadmap.md.