0.7.0 • Published 2 years ago

@metamorphosisjs/metamorphosis v0.7.0

Weekly downloads
21
License
MIT
Repository
github
Last release
2 years ago

Metamorphosis

A super dope, pluggable NodeJS Kafka Framework for building Kafka workers like consumers, producers and stream processors.

Requirements

  • 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

Install

yarn install

Config

Copy example .env and replace values with your own

cp .env.example .env
OptionDescriptionDefault
KAFKA_BROKERSComma-delimited string of brokers e.g. 10.10.10.1:9092,10.10.10.2:9092,...localhost:9092
KAFKA_CLIENT_IDUnique ID used by consumers and producers in this appmetamorphosis
KAFKA_TOPIC_CONSUMERTopic to read from for a single-topic consumer appmetamorphosis.test
KAFKA_TOPIC_PRODUCERTopic to write to for a single-topic producer appmetamorphosis.test
CONSUMER_GROUP_IDGroup name responsible for tracking offsets on a consumer. This should be unique for every consumer app.metamorphosis-consumer-group

Usage

See /examples folder for specific sample applications

Services

Allow for consistent setup processing of Kafka topics using common tools for repeated tasks.

Default Consumer

Pass a callback and perform work on each message in a single topic

Default Producer

Generate a client connection with the ability to write messages into a Kafka topic.

Webhook Producer

Define an endpoint to consume payloads and write to a Kafka topic.

Database Adapter

Pass a database adapter into any service for reading and writing to a database.

Testing

Install either the Kitchen Sink package or pick and choose from the items below.

A) Kitchen Sink

Install everything needed to test Kafka and all database adapters

yarn setup:all

B) Choose your components

You can use Kafka or database environments you are already running by setting them in the .env or the config/{environment}.js file

Kafka Cluster

Setup local Kafka cluster with Zookeper and SSL/SASL connection

yarn kafka:start

MySQL Database

Setup MySQL 8 database with sample schema and table

yarn mysql:start

Run Mocha Tests

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
0.7.0

2 years ago

0.6.0

3 years ago

0.5.1

3 years ago

0.5.0

3 years ago

0.4.2

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.0

4 years ago

0.3.1

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.0

4 years ago

0.1.1

4 years ago

0.0.1

4 years ago