* change name for menu item for preview (#3533) Signed-off-by: Carlos Santana <csantana23@gmail.com> * Added detail per issue #3425 (#3514) * Update knative/community files (#3553) Signed-off-by: Knative Automation <automation@knative.team> * tracing cm fix (#3506) * remove unnecessary requrirements to do a release (#3563) Signed-off-by: Carlos Santana <csantana23@gmail.com> * #3543 fix link (#3567) * Replace xip.io with sslip.io (#3574) * Update actions (#3535) Signed-off-by: Knative Automation <automation@knative.team> * Update common github actions (#3552) Signed-off-by: Knative Automation <automation@knative.team> * upgrade to latest dependencies (#3505) bumping knative.dev/hack 88c69cd...93ad912: > 93ad912 Print java and mvn version (# 65) > 86f9adc Fix default codegen pkg dir (# 67) Signed-off-by: Knative Automation <automation@knative.team> * Remove responsive-revision-gc config (#3545) Since https://github.com/knative/serving/pull/10084 deleted old GC and started using responsive GC by default, `responsive-revision-gc` in `config-feature` is not used at all. This patch removes the configuration `responsive-revision-gc` in `config-feature` configmap. * Fixes #3117 and broken links (#3569) * Fix #3117 and broken links * Fix #3117 and broken links * remove spec folder and redirect page and update links * remove conflicts * Update shortcodes.md (#3550) minor grammar. * 💄 slight change to ordered delivery guarantees (#3536) Signed-off-by: Matthias Wessendorf <mwessend@redhat.com> * Add knative-release-leads to OWNERS (#3586) * add approvers ux (#3587) * Update the default value (#3530) * Adding notes on KafkaSource usage (#3596) * Adding some Kafka note for use-cases Signed-off-by: Matthias Wessendorf <mwessend@redhat.com> * changing the description Signed-off-by: Matthias Wessendorf <mwessend@redhat.com> * Update actions (#3581) Signed-off-by: Knative Automation <automation@knative.team> * Remove python pycache (#3594) * Use correct setting in ClusterIssue setting (#3595) The doc uses ClusterIssuer `letsencrypt-http01-issuer` but the configuration uses `letsencrypt-issuer` so it is confusable. Actual report is https://github.com/knative/docs/issues/3560. So this patch changes the ClusterIssuer name to `letsencrypt-http01-issuer` which is used in this doc section. Fix https://github.com/knative/docs/issues/3560 * fix broken link #3568 #3577 (#3579) * fix Netlify build * Added Snippets folder and hidden Beta Contributor guide * Update docs/eventing/event-registry.md Co-authored-by: Carlos Santana <csantana23@gmail.com> * whitespace * more whitespace * removing this bit because linting is killing me * ok really the last one Co-authored-by: Carlos Santana <csantana23@gmail.com> Co-authored-by: RichardJJG <rijohnson@vmware.com> Co-authored-by: knative-automation <automation@knative.team> Co-authored-by: Shashankft9 <48708039+Shashankft9@users.noreply.github.com> Co-authored-by: Ashleigh Brennan <abrennan@redhat.com> Co-authored-by: Benjamin Tan Wei Hao <benjamintanweihao@gmail.com> Co-authored-by: Kenjiro Nakayama <nakayamakenjiro@gmail.com> Co-authored-by: Jonathan Johnson <jonathan.johnson@dijure.com> Co-authored-by: Matthias Wessendorf <mwessend@redhat.com> Co-authored-by: Evan Anderson <evana@vmware.com> Co-authored-by: RichieEscarez <rescarez@google.com> Co-authored-by: NovaHe <heqianfly@gmail.com> |
||
|---|---|---|
| .. | ||
| broker | ||
| channels | ||
| data | ||
| debugging | ||
| flows | ||
| images | ||
| samples | ||
| sink | ||
| sources | ||
| sugar | ||
| OWNERS | ||
| README.md | ||
| accessing-traces.md | ||
| event-delivery.md | ||
| event-registry.md | ||
| getting-started.md | ||
| metrics.md | ||
README.md
| title | weight | type | showlandingtoc | aliases | |
|---|---|---|---|---|---|
| Knative Eventing | 06 | docs | false |
|
Knative Eventing
Knative Eventing is a system that is designed to address a common need for cloud native development and provides composable primitives to enable late-binding event sources and event consumers.
Functionality
Knative Eventing supports multiple modes of usage. The following scenarios are well-supported by the existing components; since the system is modular, it's also possible to combine the components in novel ways.
-
I just want to publish events, I don't care who consumes them. Send events to a broker as an HTTP POST. Sink binding can be useful to decouple the destination configuration from your application.
-
I just want to consume events like X, I don't care how they are published. Use a trigger to consume events from a Broker based on CloudEvents attributes. Your application will receive the events as an HTTP POST.
-
I want to transform events through a series of steps. Use channels and subscriptions to define complex message-passing topologies. For simple pipelines, the Sequence automates construction of channels and subscriptions between each stage.
Knative also supports some additional patterns such as Parallel fanout of events, and routing response events from both Channels and Brokers.
Design overview
Knative Eventing is designed around the following goals:
- The Knative Eventing resources are loosely coupled. These resources can be developed and deployed independently on, and across a variety of platforms (for example Kubernetes, VMs, SaaS or FaaS).
- Event producers and event consumers are independent. Any producer (or source), can generate events before there are active event consumers that are listening. Any event consumer can express interest in an event or class of events, before there are producers that are creating those events.
- Other services can be connected to the Eventing system. These services can
perform the following functions:
- Create new applications without modifying the event producer or event consumer.
- Select and target specific subsets of the events from their producers.
- Ensure cross-service interoperability. Knative Eventing is consistent with the CloudEvents specification that is developed by the CNCF Serverless WG.
Event consumers
To enable delivery to multiple types of Services, Knative Eventing defines two generic interfaces that can be implemented by multiple Kubernetes resources:
- Addressable objects are able to receive and acknowledge an event
delivered over HTTP to an address defined in their
status.address.urlfield. As a special case, the core Kubernetes Service object also fulfils the Addressable interface. - Callable objects are able to receive an event delivered over HTTP and transform the event, returning 0 or 1 new events in the HTTP response. These returned events may be further processed in the same way that events from an external event source are processed.
Event registry
Knative Eventing defines an EventType object to make it easier for consumers to discover the types of events they can consume from Brokers.
The registry consists of a collection of event types. The event types stored in the registry contain (all) the required information for a consumer to create a Trigger without resorting to some other out-of-band mechanism.
To learn how to use the registry, see the Event Registry documentation.
Higher Level eventing constructs
There are cases where you may want to utilize a set of co-operating functions together and for those use cases, Knative Eventing provides two additional resources:
- Sequence provides a way to define an in-order list of functions.
- Parallel provides a way to define a list of branches for events.