From e4400c7006143a95246661a3fe6376d6b22c1fbe Mon Sep 17 00:00:00 2001 From: zhang-arvin Date: Sun, 30 Aug 2026 15:24:59 +0800 Subject: [PATCH] docs(#5295): add package-level doc for RocketMQ 5 POP broker-ACK barrier (PR #5316) Companion to #5333: while #5333 expanded the inline comment in UniIngressService.deliver to attribute the AtomicInteger barrier to PR #5316 (zhang-arvin, fixes #5295), this commit adds the same attribution at the package level. package-info.java previously mentioned only the ingress class's role (route CloudEvents to delivery/push); readers tracking RocketMQ 5.x POP semantics now find the barrier's contract described next to the @Internal marker that the package already carries. No behavior change; this is a documentation-only update. Original PR: https://github.com/apache/eventmesh/pull/5316 Fixes #5295 Co-authored-by: zhang-arvin --- .../apache/eventmesh/runtime/ingress/package-info.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/ingress/package-info.java b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/ingress/package-info.java index 1d267445b9..a903e6ba8e 100644 --- a/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/ingress/package-info.java +++ b/eventmesh-runtime/src/main/java/org/apache/eventmesh/runtime/ingress/package-info.java @@ -22,6 +22,16 @@ * *

Policy: Public facade -- boot wires ingress into UniRuntime, but no engine sub-package may bypass it. * + *

Broker-ACK barrier (RocketMQ 5.x POP, see PR #5316 by zhang-arvin, + * fixes #5295): when the ingress frame carries a POP check key (the + * {@code empopck} attribute), deliveries to all matched subscriptions + * share an {@link java.util.concurrent.atomic.AtomicInteger} counter + * initialized to the target count; the broker is ACKed (via + * {@code storage.ackPulledMessage}) only when the last required delivery + * ACKs. This restores at-least-once semantics across LOAD_BALANCE, + * BROADCAST, and MULTICAST distribution modes. Frames without + * {@code empopck} bypass the barrier (no broker ACK to defer). + * *

Marked {@link org.apache.eventmesh.common.Internal @Internal} as a * whole package; public types must carry {@link org.apache.eventmesh.common.Public @Public}. */