---
id: plugins-event
title: "Event"
summary: "The 6 plugins in Event: Kafka publisher, Kafka subscriber, MQTT publisher and 3 more."
audience: user
keywords: "KafkaProducer, KafkaConsumer, MqttPublisher, MqttSubscriber, NatsPublisher, NatsSubscriber"
---
# Event

Connect flows to event streams: **Kafka**, **MQTT** and **NATS**. Each has a subscriber, which starts the flow for every message, and a publisher, which sends records out.

```text
Kafka subscriber → Json deserializer → ... your logic → Kafka publisher
```

Messages travel as `EventData` records: a CloudEvents 1.0 event with the payload, the headers and the channel it came from.

## Plugins

| Plugin | What it does | Pins |
|---|---|---|
| [Kafka publisher](/documentation/plugins/event/kafka-producer) | Publishes every incoming record as a message to a Kafka topic. Accepts either a ready-made `EventData` (key, headers, timestamp, binary payload) or a `TextRecord` whose text becomes the payload. | `Input`, `Continue` |
| [Kafka subscriber](/documentation/plugins/event/kafka-consumer) | Subscribes to one Kafka topic and emits every received message as an `EventData` record. Use it as the starting point of a flow that reacts to Kafka events. | `Start`, `Continue` |
| [MQTT publisher](/documentation/plugins/event/mqtt-publisher) | Publishes every incoming `EventData` record as a message to an MQTT topic. Use it to send events or telemetry to an MQTT broker. | `Input` |
| [MQTT subscriber](/documentation/plugins/event/mqtt-subscriber) | Subscribes to an MQTT topic (or topic filter) and emits every received message as an `EventData` record. Use it as the starting point of a flow that reacts to MQTT messages. | `Start`, `Continue` |
| [NATS publisher](/documentation/plugins/event/nats-publisher) | Publishes every incoming `EventData` record to a NATS subject (core NATS, at-most-once) using the CloudEvents NATS binding in binary content mode: attributes travel as `ce-*` headers, the payload is the raw message body. | `Input`, `Continue` |
| [NATS subscriber](/documentation/plugins/event/nats-subscriber) | Subscribes to a NATS subject (core NATS, at-most-once) and emits every received message as an `EventData` record, strictly in arrival order. CloudEvents attributes are read from `ce-*` headers (NATS binding, binary content mode). Use it as the starting point of a flow that reacts to NATS messages. | `Start`, `Output` |
