eventing is a free, open source frameworks & platforms project written in Go and released under Apache-2.0. It has 1,554 GitHub stars, 631 forks and 150 open issues, and was last pushed 8 hours ago. On this registry it ranks #42 of 49 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is eventing?

Knative Eventing is an open-source, event-driven application platform for Kubernetes that gives teams a CloudEvents-based way to produce, route, and consume events across services running in a cluster.

What it is

Knative Eventing is a Go project, licensed under Apache-2.0, that lives in the Knative ecosystem and runs on Kubernetes. Its README describes it as "the event-driven application platform for Kubernetes," with the subtitle "Secure event processing and discovery with CloudEvents." The topic list confirms the shape of the project: knative, kubernetes, eventing, events, event-driven, cloudevents, binding, and developer-productivity. The Go module is published as knative.dev/eventing and documented through pkg.go.dev, and the project's user-facing documentation sits at knative.dev/docs/eventing.

The concrete problem it addresses is event plumbing between services on Kubernetes. Rather than each application wiring up its own bespoke, point-to-point event handling, teams adopt a shared eventing layer built around the CloudEvents specification, so event producers and consumers agree on a common format and a common delivery platform. The topic list names "binding" alongside "eventing" and "events," which points at connecting event sources to consumers as a first-class concern rather than something each service reinvents. Discovery and secure event processing are called out directly in the README subtitle, so this is a platform-level answer to how events are found and moved, not a library that only formats messages.

Key capabilities

  • CloudEvents as the event format, per the README subtitle and the cloudevents topic.
  • Secure event processing and event discovery as stated platform goals.
  • Event binding support, reflected in the binding topic.
  • Kubernetes-native operation, reflected in the kubernetes topic.
  • Event-driven messaging primitives, reflected in the eventing, events, and event-driven topics.
  • Developer-productivity focus, reflected in the developer-productivity topic.
  • Published Go module at knative.dev/eventing, with a go.dev reference on pkg.go.dev and an Apache-2.0 licence file in the repository.

Who uses it and how

  • Kubernetes platform teams that need a shared eventing layer for workloads already running in-cluster.
  • Application developers who want to handle CloudEvents-compatible events instead of writing custom transport between services.
  • Teams standardising event handling across many services, using the cloudevents topic as the common contract.
  • Contributors working in Go: the repository shows 631 forks and 150 open issues, with the module consumed from pkg.go.dev.
  • Users seeking help in the Knative Slack #eventing channel or the wider CNCF Slack, both linked from the README.

Getting started

The project is consumed as the Go module knative.dev/eventing, with its reference documentation hosted on pkg.go.dev, and installation and deployment guidance is published at knative.dev/docs/eventing.

How it compares

No comparable tools are named in the facts provided, and no list of paid products it replaces is given, so on the evidence available it stands alone in this registry. Any comparison with other eventing offerings would require sources this entry does not include.

When to use it — and when not to

Pick Knative Eventing when a Kubernetes cluster is already the deployment target and a shared, CloudEvents-based event layer is wanted across services. A self-hoster must run the Kubernetes cluster and the eventing components on top of it, so teams without Kubernetes operations capacity, or those wanting a fully hosted event bus, should look elsewhere. The README excerpt provided is short and the facts give no release history, so anyone evaluating adoption should check knative.dev/docs/eventing and the repository releases directly; 150 open issues is also worth reviewing before committing.

project readme (upstream, from github) — read inline

Knative Eventing - The Event-driven application platform for Kubernetes

Secure event processing and discovery with CloudEvents

go.dev reference Go Report Card Releases LICENSE codecov TestGrid Slack Slack CII Best Practices

What is Knative Eventing?

Knative Eventing is a collection of APIs that enable you to use an event-driven architecture with your applications. You can use these APIs to create components that route events from event producers (known as sources) to event consumers (known as sinks) that receive events. Sinks can also be configured to respond to HTTP requests by sending a response event.

Knative Eventing is a standalone platform that provides support for various types of workloads, including standard Kubernetes Services and Knative Serving Services.

Knative Eventing uses standard HTTP requests to route events from event producers to event consumers, following the rules set by the CloudEvents specification. This is a standard set up by the CNCF that has wide support for many programming languages, making it easy to create, understand, send, and receive events.

Knative Eventing components are loosely coupled, and can be developed and deployed independently of each other. Any producer can generate events before there are active event consumers that are listening for those events. Any event consumer can express interest in a class of events before there are producers that are creating those events.

What to expect here?

This repository contains an eventing system that is designed to address a common need for cloud native development:

  1. Services are loosely coupled during development and deployed independently
  2. A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that is not yet being produced.
  3. Services can be connected to create new applications
    • without modifying producer or consumer, and
    • with the ability to select a specific subset of events from a particular producer.

More on Knative Eventing

The high level mission of Knative Eventing is: Enable asynchronous application development through event delivery from anywhere.

For the full mission of Knative Eventing see docs/mission.md.

For complete Knative Eventing documentation, see Knative eventing or Knative docs to learn about Knative.

If you are interested in contributing, see the ready to work issues, CONTRIBUTING.md, DEVELOPMENT.md and Knative working groups.

Interested users should join knative-users.

Frequently asked questions

Is eventing free to use?

eventing is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does eventing do?

Event-driven application platform for Kubernetes

What is eventing written in?

eventing is primarily written in Go. Its source is publicly available at https://github.com/knative/eventing, and it has 1,554 GitHub stars.