EventHorizon.RocketMQ.Grpc 0.4.0
Behavior
- Add the released Java
java-5.2.1duration-carrying consume result.ConsumeResultis now a sealed record withSuccess,Failure, andSuspend(TimeSpan); suspend durations must be at least 50 milliseconds. - Keep non-FIFO retry/DLQ progression service-owned for both regular Push and LitePush. Regular Push normalizes Suspend to Failure; non-FIFO LitePush ignores the requested Suspend duration and uses the same retry-policy NACK path as Failure.
- Keep FIFO Failure progression client-owned for regular Push and LitePush: retry the handler locally, then attempt DLQ forwarding after the effective attempt limit.
- FIFO LitePush applies
Suspend(duration)throughChangeInvisibleDurationwithsuspend=trueand suspends unprocessed same-LiteTopic siblings from the current receive batch without invoking them. - Preserve FIFO when optional grouping metadata is absent by using the authoritative subscription setting and a physical-queue fallback key.
- Record retry-policy settlement as
nackand FIFO caller-duration suspension assuspend. Failed completion remains unresolved and can be redelivered.
Compatibility
This is an intentional pre-1.0 breaking API change. ConsumeResult is no longer an enum. Existing returns of ConsumeResult.Success and ConsumeResult.Failure remain straightforward, but enum switches and APIs that require an enum must be updated for the sealed-record result shape.
Validation
- Rechecked the official
java-5.2.1GitHub release as non-draft and non-prerelease and auditedLitePushConsumerImpl,ProcessQueueImpl, andFifoConsumeServiceat that tag. - PR CI passed formatting, build, all unit and .NET 8 checks, Codecov, and all four single-/multi-Broker Docker integration suites.
- Focused live coverage verifies regular FIFO/non-FIFO DLQ, Lite FIFO/non-FIFO DLQ, and FIFO Lite Suspend timing and receipt replacement. Retry-exhaustion cases fail the initial attempt and one retry before DLQ progression.
Two remaining intentional differences from released Java are tracked in #25, including the bounded completion-RPC retry lifetime.
Full change: PR #27
NuGet: https://www.nuget.org/packages/EventHorizon.RocketMQ.Grpc/0.4.0