From 97b375dbee54ad34a9c9a9abbfa13f90d0e323e8 Mon Sep 17 00:00:00 2001 From: Francesco Guardiani Date: Wed, 7 Apr 2021 16:58:49 +0200 Subject: [PATCH] Kafka broker ordered delivery (#3369) * Kafka broker ordered delivery Signed-off-by: Francesco Guardiani * Suggestions Signed-off-by: Francesco Guardiani * Fix trailing whitespace Signed-off-by: Francesco Guardiani * Suggestions Signed-off-by: Francesco Guardiani * Trailing whitespace Signed-off-by: Francesco Guardiani --- docs/eventing/broker/kafka-broker.md | 31 +++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/eventing/broker/kafka-broker.md b/docs/eventing/broker/kafka-broker.md index d7977a5f2..fab239af7 100644 --- a/docs/eventing/broker/kafka-broker.md +++ b/docs/eventing/broker/kafka-broker.md @@ -293,6 +293,35 @@ To change the logging level to `DEBUG`, you must: kubectl rollout restart deployment -n knative-eventing kafka-broker-dispatcher ``` +## Configuring the order of delivered events + +When dispatching events, the Kafka broker can be configured to support different delivery ordering guarantees. + +You can configure the delivery order of events using the `kafka.eventing.knative.dev/delivery.order` annotation on the `Trigger` object: + +```yaml +apiVersion: eventing.knative.dev/v1 +kind: Trigger +metadata: + name: my-service-trigger + annotations: + kafka.eventing.knative.dev/delivery.order: ordered +spec: + broker: my-kafka-broker + subscriber: + ref: + apiVersion: serving.knative.dev/v1 + kind: Service + name: my-service +``` + +The supported consumer delivery guarantees are: + +* `unordered`: Unordered consumer is a non-blocking consumer that potentially delivers messages unordered, while preserving proper offset management. +* `ordered`: Ordered consumer is a per-partition blocking consumer that delivers messages in order. + +`unordered` is the default ordering guarantee, while **`ordered` is considered unstable, use with caution**. + ### Additional information -- To report bugs or add feature requests, open an issue in the [eventing-kafka-broker repository](https://github.com/knative-sandbox/eventing-kafka-broker). +- To report a bug or request a feature, open an issue in the [eventing-kafka-broker repository](https://github.com/knative-sandbox/eventing-kafka-broker).