1.0.4 • Published 10 months ago

kafka-node-handler v1.0.4

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

Kafka Node.js Handler 🚀

A lightweight and easy-to-use Kafka handler for Node.js applications. This package provides a simple interface for setting up Kafka consumers and producers, making it easy to integrate Kafka messaging into your Node.js projects.

✨ Features

  • 🔧 Easy setup with a single line of code
  • 🔄 Automatic reconnection handling
  • 📡 Event-based consumer with customizable message handling
  • 📤 Simple producer interface for sending messages
  • 🛑 Graceful shutdown handling

📦 Installation

npm install kafka-node-handler

🚀 Usage

Initializing Kafka

To set up the Kafka handler, use the initializeKafka function:

import { initializeKafka } from 'kafka-node-handler';

initializeKafka({
  topic: process.env.TOPIC,
  groupId: process.env.GROUP_ID,
  brokers: [process.env.KAFKA_BROKER_ADDRESS],
  onNewMessage: handleNewMessage,
});

function handleNewMessage({ routingKey, event }) {
  console.log(`Received message with key ${routingKey}:`, event);
  // Process the message here
}

Sending Messages 📨

To send messages, use the sendMessage function:

import { sendMessage } from 'kafka-node-handler';

await sendMessage('messageKey', { your: 'message', data: 'here' });

⚙️ Configuration

The initializeKafka function accepts a configuration object with the following properties:

  • topic: The Kafka topic to subscribe to (required)
  • groupId: The consumer group ID (required)
  • brokers: An array of Kafka broker addresses (required)
  • onNewMessage: A callback function to handle new messages (required)

🐛 Error Handling

The package includes built-in error handling and logging. Check your console for any error messages or warnings.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License.

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago