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
Unless otherwise noted, the nats-kafka bridge source files are distributed under the Apache Version 2.0 license found in the LICENSE file.