@@ -58,8 +58,6 @@ kind: Pipeline
5858metadata :
5959 name : my-pipeline
6060spec :
61- limits :
62- readBatchSize : 1 # recommended for strict ordering
6361 ordered :
6462 enabled : true # enable order-preserving processing pipeline-wide
6563 vertices :
@@ -118,8 +116,9 @@ case.
118116- **Source vertices** always preserve input order regardless of the `ordered` setting.
119117- **Key-based routing**: ordering is guaranteed per key. Messages with different keys may still be interleaved across
120118 partitions. Ensure your UDF or SDK sets meaningful message keys to leverage per-key ordering.
121- - **`readBatchSize: 1`** is required for strict ordering. With a larger batch size, multiple messages may
122- be in-flight simultaneously within a single pod.
119+ - **In-flight cap is forced to 1**: when ordered processing is enabled on a Map or Sink vertex, the controller
120+ automatically sets `limits.concurrency = 1` so each pod processes one message at a time. You don't need to set
121+ ` concurrency` or `readBatchSize` yourself — any explicit `concurrency` you set is overridden for ordered vertices.
123122- **Throughput trade-off**: ordered processing limits parallelism within a partition. Consider the number of partitions
124123 carefully to balance ordering guarantees with throughput requirements.
125124- **Join vertices (multiple input edges)**: When a vertex receives messages from multiple upstream vertices
@@ -169,8 +168,6 @@ kind: Pipeline
169168metadata:
170169 name: ordered-pipeline
171170spec:
172- limits:
173- readBatchSize: 1
174171 ordered:
175172 enabled: true
176173 vertices:
@@ -202,8 +199,8 @@ spec:
202199In the example above :
203200
204201- `ordered.enabled : true` enables order-preserving processing pipeline-wide.
205- - `limits.readBatchSize : 1` is required so that each pod processes one message at a time, which is essential for
206- strict in-order guarantees.
202+ - For each ordered Map/Sink vertex the controller automatically forces `limits.concurrency = 1` so each pod processes
203+ one message at a time, which is essential for strict in-order guarantees.
207204- The `cat` (Map) and `out` (Sink) vertices each have `partitions : 3`, so they will run with exactly 3 replicas.
208205- Source vertices (`in-1`, `in-2`) always preserve input order and require no extra configuration.
209206- Because `in-1` and `in-2` both feed into `cat` (a join), messages from the two sources are interleaved at `cat`.
0 commit comments