A super dope, pluggable NodeJS Kafka Framework for building Kafka workers like consumers, producers and stream processors.
- Kafka cluster either BYO or run the install scripts below for a test cluster
- Node 12.x
- Yarn or NPM package managers (this project defaults to Yarn)
- Docker (if testing without Kafka cluster)
- Docker Compose
yarn install
Copy example .env
and replace values with your own
cp .env.example .env
Option | Description | Default |
---|---|---|
KAFKA_BROKERS | Comma-delimited string of brokers e.g. 10.10.10.1:9092,10.10.10.2:9092,... |
localhost:9092 |
KAFKA_CLIENT_ID | Unique ID used by consumers and producers in this app | metamorphosis |
KAFKA_TOPIC_CONSUMER | Topic to read from for a single-topic consumer app | metamorphosis.test |
KAFKA_TOPIC_PRODUCER | Topic to write to for a single-topic producer app | metamorphosis.test |
CONSUMER_GROUP_ID | Group name responsible for tracking offsets on a consumer. This should be unique for every consumer app. | metamorphosis-consumer-group |
See /examples
folder for specific sample applications
Allow for consistent setup processing of Kafka topics using common tools for repeated tasks.
Pass a callback and perform work on each message in a single topic
Generate a client connection with the ability to write messages into a Kafka topic.
Define an endpoint to consume payloads and write to a Kafka topic.
Pass a database adapter into any service for reading and writing to a database.
Install either the Kitchen Sink
package or pick and choose from the items below.
Install everything needed to test Kafka and all database adapters
yarn setup:all
You can use Kafka or database environments you are already running by setting them in the .env
or the config/{environment}.js
file
Setup local Kafka cluster with Zookeper and SSL/SASL connection
yarn kafka:start
Setup MySQL 8 database with sample schema and table
yarn mysql:start
Run all tests from root of project. You can adjust the timeout and other settings in .mocharc.json
and test/config.js
as well as the standard application config.
yarn test