Skip to content

Commit f6ee247

Browse files
committed
docs: split 4.0.0 entry into RC5 (web fixes + multi-consumer fix) and RC6
Per the release plan: RC5 is the broker SPI extraction, NATS-aware dashboard work, consumer-aware peek, and the multi-consumer fan-out ack/nack fix. RC6 is just the new Job.getConversionException middleware API plus the additional Maven Central publish targets. 4.0.0 GA promotes RC6 with no functional changes. Also fixed a forward reference in the RC4 entry that pointed to "4.0.0" for the SPI extraction; that work lands in RC5.
1 parent 28194a9 commit f6ee247

1 file changed

Lines changed: 44 additions & 33 deletions

File tree

docs/CHANGELOG.md

Lines changed: 44 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,45 +12,56 @@ All notable user-facing changes to this project are documented in this file.
1212

1313
{: .highlight}
1414
First 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

Comments
 (0)