Skip to content
NATS to Kafka Bridging
Go Shell Other
Branch: master
Clone or download
Latest commit 0bb71a3 Jun 11, 2019


NATS-Kafka Bridge

License ReportCard Build Coverage

This project implements a multi-connector bridge between NATS or NATS streaming and Kafka topics.


  • Support for bridging from/to Kafka topics
  • Arbitrary subjects in NATS, wildcards for incoming messages
  • Arbitrary channels in NATS streaming
  • Optional durable subscriber names for streaming
  • Configurable std-out logging
  • A single configuration file, with support for reload
  • Optional SSL to/from Kafka, NATS and NATS streaming
  • HTTP/HTTPS-based monitoring endpoints for health or statistics


The bridge runs as a single process with a configured set of connectors mapping a Kafka topic to a NATS subject or a NATS streaming channel. Connectors can also map the opposite direction from NATS to Kafka. Each connector is a one-way bridge.

Connectors share a NATS connection and an optional connection to the NATS streaming server. Connectors each create a connection to Kafka, subject to TCP connection sharing in the underlying library

Message values in Kafka are mapped to message bodies in NATS.

Messages coming from NATS to Kafka can have their key set in a variety of ways, see Configuration. Messages coming from Kafka will have their key ignored.

Request-reply is not supported.

The bridge is configured with a NATS server-like format, in a single file and uses the NATS logger.

An optional HTTP/HTTPS endpoint can be used for monitoring.


  • Integrate with travis and coveralls


External Resources


Unless otherwise noted, the nats-kafka bridge source files are distributed under the Apache Version 2.0 license found in the LICENSE file.

You can’t perform that action at this time.