EventHorizon.RocketMQ.Remoting 0.6.1
Behavior
- Align classic orderly PULL retry lifecycle with the official Apache RocketMQ Java
rocketmq-all-5.5.0release. - Add
OrderlyMaxReconsumeTimes, defaulting to-1for effectively unlimited local orderly reconsumes.0publishes after the initial failure; a positive value permits that many local reconsumes. - Expose the zero-based mutable
RemotingMessageView.ReconsumeTimesused by Java orderly consumption while preserving the immutable one-based BrokerDeliveryAttempt. - At finite exhaustion, publish to
%RETRY%<group>through internal producer semantics with origin, retry, reconsume, maximum, delay, flag, and body metadata. The Broker performs the DLQ redirect when the supplied count exceeds the maximum. - Retry terminal publication up to three immediate wire sends, select an alternate Broker when possible, and fall back to the default topic route when the retry-topic route is missing or unwritable. A failed publication retains the message and offset for another local attempt.
- Record the terminal retry-topic publication as one logical reject settlement operation without changing concurrent PULL, POP, or MessageGroup behavior.
Compatibility
This patch adds protocol-specific public members and changes the default orderly retry budget from the previous finite client limit to the released Java unlimited sentinel. Configure OrderlyMaxReconsumeTimes explicitly when finite orderly exhaustion and Broker DLQ routing are required.
Validation
- Audited against the official stable Java
rocketmq-all-5.5.0tag; released Gov2.1.2was used only as secondary corroboration. - PR and merged-main CI passed formatting, build, 638 Remoting unit tests, 27 compatibility tests, runtime validation, Codecov, and all single-/multi-Broker Docker integration suites.
- Focused live DLQ coverage fails the initial delivery and one retry before verifying Broker-routed DLQ progression.
Full change: PR #28
NuGet: https://www.nuget.org/packages/EventHorizon.RocketMQ.Remoting/0.6.1