Skip to main content

Key Concepts

info

This set of features are only available in Kargo on the Akuity Platform, versions v1.8 and above.

This document provides an overview of the key concepts related to Kargo's Notifications feature, explaining the main components involved in sending notifications based on events.

Channels

Channels define the destination and method for sending notifications. They specify where the notifications should be sent, such as to a Slack channel, email address, or other supported platforms. Channels are configured using MessageChannel or ClusterMessageChannel resources. Each channel type may have its own specific configuration options, such as authentication details, recipient information, and message formatting preferences.

You can think of channels as a "connection string" of sorts that tells Kargo where to send data. They do not define the message or other information, only the connection details. They are used by EventRouters and by the send-message step to send notifications when specific events occur.

Event Routers

At their core, EventRouters are responsible for listening to specific events within Kargo and routing them to the appropriate channels based on defined criteria. They act as the bridge between events and channels, ensuring that notifications are sent to the right destinations when relevant events occur. Due to their design, the same event can be routed to multiple channels or different events can be routed to the same channel without duplicating notification logic.

The lack of "notification" in the name is intentional, as EventRouters do not themselves send notifications. Instead, they route events to channels after rendering data from the event, which then handle the actual sending of notifications. This design allows for greater flexibility and reusability, as you can glue together any type of message or data you are interested in without confining it to a specific notification-only format. There is also the possibility (but not guarantee) that in the future we may implement routing of events to other systems beyond just notifications.