@@ -12,45 +12,56 @@ All notable user-facing changes to this project are documented in this file.
1212
1313{: .highlight}
1414First stable 4.0.0 release. Targets Spring Boot 4.x and Spring Framework 7.x on
15- Java 21. See the RC1 / RC2 entries below for the foundational Spring Boot 4 and
16- Jackson 3 migration notes — those still apply. The NATS JetStream backend itself
17- was introduced in RC4; this release builds on it with the broker SPI extraction
18- and a NATS-aware dashboard .
15+ Java 21. Promotes the RC6 line to GA — no functional changes versus RC6. See
16+ RC1 / RC2 below for the foundational Spring Boot 4 and Jackson 3 migration
17+ notes; RC4–RC6 below for the NATS backend, broker SPI, dashboard work, and
18+ middleware additions that build on top .
1919
20- {: .note}
21- RC5 was not released. Versioning jumped from RC4 directly to RC6.
20+ ## Release [ 4.0.0.RC6] TBD
21+
22+ {: .highlight}
23+ Release candidate.
24+
25+ ### Features
26+ * ** Message-converter exception exposed to middleware** — ` Job ` now exposes
27+ ` getConversionException() ` (and a ` hasConversionException() ` default) so
28+ middleware can detect and react to inbound deserialization failures (route
29+ to DLQ, alert, attempt a fallback decode) instead of being unable to
30+ distinguish a converter error from a legitimately-String payload.
31+
32+ ### Build
33+ * ` rqueue-nats ` , ` rqueue-redis ` , and ` rqueue-web ` now publish to Maven Central
34+ alongside ` rqueue-core ` , ` rqueue-spring ` , and ` rqueue-spring-boot-starter ` .
35+
36+ ## Release [ 4.0.0.RC5] TBD
37+
38+ {: .highlight}
39+ Release candidate. The two themes are a multi-consumer correctness fix on the
40+ NATS backend and a NATS-aware dashboard built on a new pluggable broker SPI.
2241
2342### Features
2443* ** Pluggable broker SPI** — the queueing layer was separated from Redis behind
2544 a ` MessageBroker ` SPI with a ` Capabilities ` model. The dashboard, explorer,
26- and admin paths now adapt to backend capabilities (nav tabs, charts, data-type
45+ and admin paths adapt to backend capabilities (nav tabs, charts, data-type
2746 labels, queue-size accounting) instead of assuming Redis primitives.
28- * ** Consumer-aware peek** — added a consumer-aware ` peek ` overload on the broker
29- SPI. The dashboard explorer can browse a specific consumer's outstanding
30- messages on Limits-retention streams, skipping already-acked ranges and
31- reflecting per-consumer ack floors. Useful for fan-out topologies where each
32- durable has a different delivery position.
47+ * ** Consumer-aware peek** — added a consumer-aware ` peek ` overload on the
48+ broker SPI. The dashboard explorer can browse a specific consumer's
49+ outstanding messages on Limits-retention streams, skipping already-acked
50+ ranges and reflecting per-consumer ack floors. Useful for fan-out topologies
51+ where each durable has a different delivery position.
3352* ** NATS-aware queue detail page** — redesigned queue detail with a hero panel,
34- chip strip, per-consumer Subscribers table (with separate Pending and
35- In-Flight columns and a Workers column), and a Terminal Storage card. Pending
36- shows yet-to-deliver count; In-Flight shows messages currently being
37- processed. Limits-retention queues render approximate sizes with a ` ~ ` prefix.
53+ chip strip, per-consumer Subscribers table (separate Pending and In-Flight
54+ columns plus a Workers column), and a Terminal Storage card. Pending shows
55+ yet-to-deliver count; In-Flight shows messages currently being processed.
56+ Limits-retention queues render approximate sizes with a ` ~ ` prefix.
3857* ** Pause / soft-delete admin ops for NATS queues** — operators can pause and
39- soft-delete NATS queues from the dashboard, with capability-gated controls so
40- unsupported actions do not appear on backends that cannot honour them.
41- * ** Message-converter exception exposed to middleware** — ` Job ` now exposes
42- ` getConversionException() ` (and a ` hasConversionException() ` default) so
43- middleware can detect and react to inbound deserialization failures (route to
44- DLQ, alert, attempt a fallback decode) instead of being unable to distinguish
45- a converter error from a legitimately-String payload.
46- * ** Additional modules published to Maven Central** — ` rqueue-nats ` ,
47- ` rqueue-redis ` , and ` rqueue-web ` now ship alongside ` rqueue-core ` ,
48- ` rqueue-spring ` , and ` rqueue-spring-boot-starter ` .
58+ soft-delete NATS queues from the dashboard, with capability-gated controls
59+ so unsupported actions do not appear on backends that cannot honour them.
4960
5061### Fixes
51- * ** NATS ack/nack under fan-out** — fixed an in-flight key collision that could
52- cause ack/nack to target the wrong NATS message when multiple consumers were
53- fanning out from the same stream.
62+ * ** NATS ack/nack under multi-consumer fan-out** — fixed an in-flight key
63+ collision that could cause ack/nack to target the wrong NATS message when
64+ multiple consumers were fanning out from the same stream.
5465* ** Consumer-name resolution** — ` resolvedConsumerName ` now uses a single
5566 consumer-name suffix, preventing duplicated suffixing under repeated lookups.
5667* ** Peek base sequence** — NATS peek now bases on ` ackFloor ` rather than
@@ -59,9 +70,9 @@ RC5 was not released. Versioning jumped from RC4 directly to RC6.
5970
6071### Migration Notes
6172* Backends are now selected via the ` MessageBroker ` SPI. Existing Redis
62- applications continue to work without configuration changes — a Redis broker
63- is wired by default. Applications wanting NATS should add ` rqueue-nats ` and
64- configure a JetStream ` MessageBroker ` bean.
73+ applications continue to work without configuration changes — a Redis
74+ broker is wired by default. Applications wanting NATS should add
75+ ` rqueue-nats ` and configure a JetStream ` MessageBroker ` bean.
6576* The dashboard ` /explore ` API gained a ` consumerName ` query parameter
6677 (nullable). Callers using the REST API directly should pass ` null ` to
6778 preserve existing behaviour or a specific consumer name to scope the peek.
@@ -77,7 +88,7 @@ JetStream backend.
7788 run on NATS JetStream as the message broker. Supports Limits-retention and
7889 WorkQueue-retention streams, durable consumers, and ack/nack delivery
7990 semantics. This is the initial drop; the broker SPI extraction and the
80- capability-aware dashboard land in 4.0.0 .
91+ capability-aware dashboard land in RC5 .
8192
8293### CI / Build
8394* Coveralls integration fixed for GitHub Actions (token wiring, build-number
0 commit comments