[Experimental] DeliverySpec Timeout
- Dominant language
- Go
- Stars
- 1.6k
- Forks
- 631
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 6
Description
**Description**
Sink services are usually very heterogeneous, each one with different response time characteristics, depending on their functionality, the way they're implemented, the guarantees the user wants. Because of that, timeouts of a request, when dispatching an event, may vary. `DeliverySpec` doesn't give the ability to the user to specify the timeout of the single request, so we usually just default to something like 10 seconds. This is not enough, and doesn't cover a lot of use cases where this parameter needs to be tuned.
This experimental feature proposed to add a new field to the `DeliverySpec` to define such timeout for each dispatched request.
**Exit Criteria**
`DeliverySpec` allows to configure the timeout of the single request.
**Experimental flag name**: `delivery-timeout`
**Experimental feature stages plan**
Below the proposed plan for the feature stages (this list implicitly includes the requirements defined in the process)
* Alpha: **Included in 0.24**
* [x] Add in the API code the `DeliverySpec.Timeout` field https://github.com/knative/eventing/pull/5149
* [x] Implement in kncloudevents module the handling of timeouts per-request https://github.com/knative/eventing/pull/5503
* [x] Implement the glue code between the api field and kncloudevents module https://github.com/knative/eventing/pull/5507
* [x] e2e test https://github.com/knative/eventing/pull/5507
* [x] User documentation https://github.com/knative/docs/pull/3793
* Beta graduation as soon as 1 release after the inception.
* Beta:
* [x] User documentation stabilization and improvements
* [x] Add conformance tests https://github.com/knative/eventing/pull/5565
* Stable graduation as 2 releases after the beta graduation
* Stable:
* [ ] Add the requirement to support `DeliverySpec.Timeout` to the knative/specs repo: https://github.com/knative/specs/pull/15#issuecomment-808024302
**Affected WG**
* Event Delivery WG
**Prior discussion**
* https://github.com/knative-sandbox/eventing-kafka-broker/issues/757
Contributor guide
Research direction
The remaining work is the unchecked Stable item: add the requirement to support DeliverySpec.Timeout in the knative/specs repository, using the linked pull request discussion as the entry point. First verify the status of that requirement and the completed Alpha and Beta links; done means the specs requirement is recorded and this graduation checklist is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100