Skip to main content

Understanding channels

In EventCatalog a channel represents the organization and transmission of messages.

Channels in EventCatalog describe how a messages transport between producers and consumers. You can use the channels resource to help your team understand how your messages are transported.


Channels are resources in EventCatalog that you can define in a /channels directory. The channel directory can be defined anywhere in your EventCatalog or you can have many channel directories in your EventCatalog.

Example of a channels are visualized in EventCatalog

Here is an example of the Orders Service publishing an event Order amended over a Kafka channel.

Example

Routing messages through multiple channels

In some cases you may want to model how messages are routed through multiple channels, you can do this using channel routes.

In the example below:

  • The Payment Service publishes a PaymentProcessed event over the PaymentEvents channel.
  • The Billing Service subscribes to the PaymentProcessed event through the PaymentEvents channel.
  • The Fraud Detection Service subscribes to the PaymentProcessed event through the Fraud Dection Queue which is pulling from the PaymentEvents channel (chained channels)
What is the PaymentEvents channel?

This is just an example, but a channel can be any protocol you like. For example if you are using Kafka then this channel could be a Kafka topic. Or if you are using an Event Bus this channel could be your bus, queue or topic.

You can model as many channels as you like, and you can route messages through multiple channels.

Example

Supported Channel Protocols

EventCatalog is technology agnostic, so can work with any protocol.

Using channels you can define the protocol used, this can be one or many protocols.

Here is a list of protocols that are supported by EventCatalog (with icons)

If you are using a protocol that is not on this list, please raise on issue on GitHub so we can get the icon supported.