Behavior
- Align completion-RPC retry lifetime with the official Apache RocketMQ Java
java-5.2.1release. - Retry every failed acknowledgement, retry/NACK, invisibility change, suspension, and client dead-letter forwarding wire operation at a fixed one-second interval until it succeeds, the caller cancels, or the owning Consumer stops.
- Treat
INVALID_RECEIPT_HANDLEas terminal for acknowledgement and invisibility changes, where the same stale receipt cannot settle the message. Dead-letter forwarding continues retrying that status in line with Java. - Give every wire attempt its own settlement Activity and metric so extended Proxy failures remain observable.
- Keep a FIFO successor blocked while completion retry is active, then release it after a terminal completion failure while leaving the failed message unsettled for possible redelivery.
- Tie pending completion retries to Consumer lifecycle cancellation so shutdown does not leave unbounded background work.
Validation
- Audited against the official stable Java
java-5.2.1tag. - PR and merged-main CI passed formatting, build, 232 gRPC unit tests, 27 compatibility tests, runtime validation, Codecov, and all single-/multi-Broker Docker integration suites.
- Focused live DLQ coverage verifies regular Push and LitePush FIFO/non-FIFO progression with an initial failure and one retry before DLQ.
This release closes the remaining stable-Java retry differences tracked in #25.
Full change: PR #28
NuGet: https://www.nuget.org/packages/EventHorizon.RocketMQ.Grpc/0.4.1