Skip to content

Latest commit

 

History

History
55 lines (45 loc) · 2.8 KB

File metadata and controls

55 lines (45 loc) · 2.8 KB

Changelog

All notable changes to com.babelqueue:babelqueue-core are documented here.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. The envelope wire format is versioned separately by meta.schema_version (currently 1) — see the contract at babelqueue.com.

1.0.0 - 2026-06-07

1.0.0 — the public API is now SemVer-stable: breaking changes require a MAJOR, following the deprecation policy. The wire envelope is unchanged (schema_version: 1). Full reference at babelqueue.com.

Internal

  • Build adds JaCoCo (line-coverage gate ≥90%, bound to verify) and SpotBugs (effort=Max, threshold=Medium); both run in CI via mvn verify. Added JSON codec edge-case + exception tests to clear the gate. A documented spotbugs-exclude.xml waives the EI_EXPOSE patterns on the read-only envelope records (no hot-path defensive copy — GR-8).
  • GR-8 latency benchmark (OverheadBenchmarkTest) — asserts the envelope encode/decode path adds ≤2% over plain-JSON serialization vs a conservative 750µs broker round-trip.

0.1.0 - 2026-06-06

Added

  • EnvelopeCodec — builds (make, fromMessage), encodes and decodes the canonical {job, trace_id, data, meta, attempts} envelope (schema_version 1). The single Java implementation of the wire format.
  • Envelope / Meta / DeadLetter immutable record types.
  • EnvelopeCodec.encode emits compact UTF-8 JSON (slashes/unicode unescaped) — byte-identical to the PHP, Python and Node cores (insertion order preserved).
  • EnvelopeCodec.urn(...) — resolve the URN (job, accepting urn as an alias).
  • EnvelopeCodec.accepts(...) — consumer-side validation (rejects empty URN, unsupported meta.schema_version, missing data, blank trace_id).
  • DeadLetters.annotate(...) — additive dead_letter block builder.
  • Contracts PolyglotMessage / HasTraceId.
  • UnknownUrnStrategy (FAIL / DELETE / RELEASE / DEAD_LETTER); BabelQueueException / UnknownUrnException.
  • A built-in minimal JSON reader/writer so the core ships with zero dependencies — no Jackson/Gson forced on consumers.
  • Shared cross-SDK conformance suite under src/test/resources/conformance/ (vendored from the canonical conformance/ set) plus a runner.

Notes

  • Pre-1.0: the public API may change before the 1.0.0 tag.
  • Zero runtime dependencies (pure JDK); requires Java 17+.