Skip to content

Commit 4ef381b

Browse files
committed
[SRVKE-1277]: Updating docs to add trigger event delivery spec
1 parent 751a4a0 commit 4ef381b

10 files changed

+125
-61
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * /serverless/develop/serverless-event-delivery.adoc
4+
5+
:_content-type: REFERENCE
6+
[id="serverless-configuring-event-delivery-examples_{context}"]
7+
= Examples of configuring event delivery parameters
8+
9+
You can configure event delivery parameters for `Broker`, `Trigger`, `Channel`, and `Subscription` objects. If you configure event delivery parameters for a broker or channel, these parameters are propagated to triggers or subscriptions created for those objects. You can also set event delivery parameters for triggers or subscriptions to override the settings for the broker or channel.
10+
11+
.Example `Broker` object
12+
[source,yaml]
13+
----
14+
apiVersion: eventing.knative.dev/v1
15+
kind: Broker
16+
metadata:
17+
...
18+
spec:
19+
delivery:
20+
deadLetterSink:
21+
ref:
22+
apiVersion: eventing.knative.dev/v1alpha1
23+
kind: KafkaSink
24+
name: <sink_name>
25+
backoffDelay: <duration>
26+
backoffPolicy: <policy_type>
27+
retry: <integer>
28+
...
29+
----
30+
31+
.Example `Trigger` object
32+
[source,yaml]
33+
----
34+
apiVersion: eventing.knative.dev/v1
35+
kind: Trigger
36+
metadata:
37+
...
38+
spec:
39+
broker: <broker_name>
40+
delivery:
41+
deadLetterSink:
42+
ref:
43+
apiVersion: serving.knative.dev/v1
44+
kind: Service
45+
name: <sink_name>
46+
backoffDelay: <duration>
47+
backoffPolicy: <policy_type>
48+
retry: <integer>
49+
...
50+
----
51+
52+
.Example `Channel` object
53+
[source,yaml]
54+
----
55+
apiVersion: messaging.knative.dev/v1
56+
kind: Channel
57+
metadata:
58+
...
59+
spec:
60+
delivery:
61+
deadLetterSink:
62+
ref:
63+
apiVersion: serving.knative.dev/v1
64+
kind: Service
65+
name: <sink_name>
66+
backoffDelay: <duration>
67+
backoffPolicy: <policy_type>
68+
retry: <integer>
69+
...
70+
----
71+
72+
.Example `Subscription` object
73+
[source,yaml]
74+
----
75+
apiVersion: messaging.knative.dev/v1
76+
kind: Subscription
77+
metadata:
78+
...
79+
spec:
80+
channel:
81+
apiVersion: messaging.knative.dev/v1
82+
kind: Channel
83+
name: <channel_name>
84+
delivery:
85+
deadLetterSink:
86+
ref:
87+
apiVersion: serving.knative.dev/v1
88+
kind: Service
89+
name: <sink_name>
90+
backoffDelay: <duration>
91+
backoffPolicy: <policy_type>
92+
retry: <integer>
93+
...
94+
----

modules/serverless-event-delivery-component-behaviors.adoc

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,13 @@
44

55
:_content-type: CONCEPT
66
[id="serverless-event-delivery-component-behaviors_{context}"]
7-
= Event delivery behavior for Knative Eventing channels
7+
= Event delivery behavior patterns for channels and brokers
88

9-
Different Knative Eventing channel types have their own behavior patterns that are followed for event delivery. Developers can set event delivery parameters in the subscription configuration to ensure that any events that fail to be delivered from channels to an event sink are retried. You must also configure a dead letter sink for subscriptions if you want to provide a sink where events that are not eventually delivered can be stored, otherwise undelivered events are dropped.
9+
Different channel and broker types have their own behavior patterns that are followed for event delivery.
1010

11-
[id="serverless-event-delivery-component-behaviors-kafka-channels_{context}"]
12-
== Event delivery behavior for Knative Kafka channels
11+
[id="serverless-event-delivery-component-behaviors-kafka_{context}"]
12+
== Knative Kafka channels and brokers
1313

14-
If an event is successfully delivered to a Kafka channel or broker receiver, the receiver responds with a `202` status code, which means that the event has been safely stored inside a Kafka topic and is not lost. If the receiver responds with any other status code, the event is not safely stored, and steps must be taken by the user to resolve this issue.
14+
If an event is successfully delivered to a Kafka channel or broker receiver, the receiver responds with a `202` status code, which means that the event has been safely stored inside a Kafka topic and is not lost.
1515

16-
[id="serverless-event-delivery-component-behaviors-status-codes_{context}"]
17-
== Delivery failure status codes
18-
19-
The channel or broker receiver can respond with the following status codes if an event fails to be delivered:
20-
21-
`500`:: This is a generic status code which means that the event was not delivered successfully.
22-
`404`:: This status code means that the channel or broker the event is being delivered to does not exist, or that the `Host` header is incorrect.
23-
`400`:: This status code means that the event being sent to the receiver is invalid.
16+
If the receiver responds with any other status code, the event is not safely stored, and steps must be taken by the user to resolve the issue.

modules/serverless-event-delivery-parameters.adoc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66
[id="serverless-event-delivery-parameters_{context}"]
77
= Configurable event delivery parameters
88

9-
Knative Eventing provides configuration parameters that can be used to control what happens to events in cases where events fail to be delivered. For example, you can configure Knative to retry sending events that failed to be consumed, or forward these events to a dead letter sink.
10-
119
The following parameters can be configured for event delivery:
1210

13-
Dead letter sink:: You can configure the `deadLetterSink` delivery parameter so that if an event fails to be delivered it is sent to the specified event sink.
11+
Dead letter sink:: You can configure the `deadLetterSink` delivery parameter so that if an event fails to be delivered, it is stored in the specified event sink. Undelivered events that are not stored in a dead letter sink are dropped. The dead letter sink be any addressable object that conforms to the Knative Eventing sink contract, such as a Knative service, a Kubernetes service, or a URI.
1412

1513
Retries:: You can set a minimum number of times that the delivery must be retried before the event is sent to the dead letter sink, by configuring the `retry` delivery parameter with an integer value.
1614

17-
Back off delay:: You can set the `backoffDelay` delivery parameter to specify the time delay before an event delivery retry is attempted after a failure. The duration of the `backoffDelay` parameter is specified using the https://en.wikipedia.org/wiki/ISO_8601#Durations[ISO 8601] format.
15+
Back off delay:: You can set the `backoffDelay` delivery parameter to specify the time delay before an event delivery retry is attempted after a failure. The duration of the `backoffDelay` parameter is specified using the https://en.wikipedia.org/wiki/ISO_8601#Durations[ISO 8601] format. For example, `PT1S` specifies a 1 second delay.
1816

19-
Back off policy:: The `backoffPolicy` delivery parameter can be used to specify the retry back off policy. The policy can be specified as either `linear` or `exponential`. When using the `linear` back off policy, the back off delay is the time interval specified between retries. When using the `exponential` backoff policy, the back off delay is equal to `backoffDelay*2^<numberOfRetries>`.
17+
Back off policy:: The `backoffPolicy` delivery parameter can be used to specify the retry back off policy. The policy can be specified as either `linear` or `exponential`. When using the `linear` back off policy, the back off delay is equal to `backoffDelay * <numberOfRetries>`. When using the `exponential` backoff policy, the back off delay is equal to `backoffDelay*2^<numberOfRetries>`.

modules/serverless-subscription-event-delivery-config.adoc

Lines changed: 0 additions & 36 deletions
This file was deleted.

serverless/develop/serverless-creating-channels.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ include::modules/serverless-create-kafka-channel-yaml.adoc[leveloffset=+1]
1717
== Next steps
1818

1919
* After you have created a channel, xref:../../serverless/develop/serverless-subs.adoc#serverless-subs[create a subscription] that allows event sinks to subscribe to channels and receive events.
20+
* Configure event delivery parameters that are applied in cases where an event fails to be delivered to an event sink. See xref:../../serverless/develop/serverless-event-delivery.adoc#serverless-configuring-event-delivery-examples_serverless-event-delivery[Examples of configuring event delivery parameters].

serverless/develop/serverless-event-delivery.adoc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@ include::_attributes/common-attributes.adoc[]
66

77
toc::[]
88

9-
You can configure event delivery parameters for Knative Eventing that are applied in cases where an event fails to be delivered by a xref:../../serverless/develop/serverless-subs.adoc#serverless-subs[subscription] or xref:../../serverless/develop/serverless-triggers.adoc#serverless-triggers[trigger] to a subscriber. Event delivery parameters are configured individually per subscriber.
9+
You can configure event delivery parameters that are applied in cases where an event fails to be delivered to an event sink. Configuring event delivery parameters, including a dead letter sink, ensures that any events that fail to be delivered to an event sink are retried. Otherwise, undelivered events are dropped.
1010

11+
// event delivery behavior of different component types, e.g. kafka
1112
include::modules/serverless-event-delivery-component-behaviors.adoc[leveloffset=+1]
13+
14+
// event delivery configurable parameters
1215
include::modules/serverless-event-delivery-parameters.adoc[leveloffset=+1]
13-
include::modules/serverless-subscription-event-delivery-config.adoc[leveloffset=+1]
14-
// add docs for configuration in triggers
16+
17+
// configuring parameters examples
18+
include::modules/serverless-configuring-event-delivery-examples.adoc[leveloffset=+1]

serverless/develop/serverless-subs.adoc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ include::_attributes/common-attributes.adoc[]
66

77
toc::[]
88

9-
After you have created a channel and an event sink, you can create a subscription to enable event delivery. Subscriptions are created by configuring a `Subscription` object, which specifies the channel and the sink (also known as a _subscriber_) to deliver events to. You can also specify some sink-specific options, such as how to handle failures.
9+
After you have created a channel and an event sink, you can create a subscription to enable event delivery. Subscriptions are created by configuring a `Subscription` object, which specifies the channel and the sink (also known as a _subscriber_) to deliver events to.
1010

1111
include::modules/serverless-creating-subscriptions-odc.adoc[leveloffset=+1]
1212
include::modules/serverless-creating-subscriptions-yaml.adoc[leveloffset=+1]
@@ -17,5 +17,7 @@ include::modules/serverless-describe-subs-kn.adoc[leveloffset=+1]
1717
include::modules/serverless-list-subs-kn.adoc[leveloffset=+1]
1818
// update subs
1919
include::modules/serverless-update-subscriptions-kn.adoc[leveloffset=+1]
20-
// config event delivery
21-
include::modules/serverless-subscription-event-delivery-config.adoc[leveloffset=+1]
20+
21+
[id="next-steps_serverless-subs"]
22+
== Next steps
23+
* Configure event delivery parameters that are applied in cases where an event fails to be delivered to an event sink. See xref:../../serverless/develop/serverless-event-delivery.adoc#serverless-configuring-event-delivery-examples_serverless-event-delivery[Examples of configuring event delivery parameters].

serverless/develop/serverless-triggers.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ include::modules/kn-trigger-describe.adoc[leveloffset=+1]
1717
include::modules/kn-trigger-filtering.adoc[leveloffset=+1]
1818
include::modules/kn-trigger-update.adoc[leveloffset=+1]
1919
include::modules/delete-kn-trigger.adoc[leveloffset=+1]
20+
21+
[id="next-steps_serverless-triggers"]
22+
== Next steps
23+
* Configure event delivery parameters that are applied in cases where an event fails to be delivered to an event sink. See xref:../../serverless/develop/serverless-event-delivery.adoc#serverless-configuring-event-delivery-examples_serverless-event-delivery[Examples of configuring event delivery parameters].

serverless/develop/serverless-using-brokers.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ The Knative (`kn`) CLI provides commands that can be used to list, describe, upd
4040
include::modules/serverless-list-broker-kn.adoc[leveloffset=+2]
4141
include::modules/serverless-describe-broker-kn.adoc[leveloffset=+2]
4242

43+
[id="next-steps_serverless-using-brokers"]
44+
== Next steps
45+
* Configure event delivery parameters that are applied in cases where an event fails to be delivered to an event sink. See xref:../../serverless/develop/serverless-event-delivery.adoc#serverless-configuring-event-delivery-examples_serverless-event-delivery[Examples of configuring event delivery parameters].
46+
4347
[id="additional-resources_serverless-using-brokers"]
4448
[role="_additional-resources"]
4549
== Additional resources

serverless/discover/serverless-channels.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,5 @@ For more information about Kafka channels, see the xref:../../serverless/develop
5050
[id="next-steps_serverless-channels"]
5151
== Next steps
5252

53-
* xref:../../serverless/develop/serverless-creating-channels.adoc#serverless-creating-channels[Create a channel] and a xref:../../serverless/develop/serverless-subs.adoc#serverless-subs[subscription] that allows event sinks to subscribe to channels and receive events.
53+
* xref:../../serverless/develop/serverless-creating-channels.adoc#serverless-creating-channels[Create a channel].
5454
* If you are a cluster administrator, you can configure default settings for channels. See xref:../../serverless/admin_guide/serverless-configuration.adoc#serverless-channel-default_serverless-configuration[Configuring channel defaults].

0 commit comments

Comments
 (0)