kafka-pub-sub
Version:
Enterprise-grade Kafka publish/subscribe library for Node.js — producer pool, batch sending, DLQ, SSL/SASL, multi-broker, and real-world industry examples.
47 lines (40 loc) • 1.32 kB
JavaScript
/**
* QUICKSTART — Subscriber
*
* Run this FIRST in Terminal 1, then run publish.js in Terminal 2.
*
* Usage:
* node examples/quickstart/subscribe.js
*/
require('dotenv').config({ path: require('path').resolve(__dirname, '../../.env') });
const { ConsumeEvent } = require('../../index');
async function main() {
console.log('Waiting for messages on "quickstart.topic"... (Ctrl+C to stop)\n');
const stop = await ConsumeEvent(
'quickstart.topic',
async (message) => {
console.log('─'.repeat(40));
console.log('Received message:');
console.log(' Key :', message.key);
console.log(' Event :', message.value.event);
console.log(' Data :', JSON.stringify(message.value.data, null, 2));
console.log(' Offset :', message.offset);
console.log(' At :', new Date(Number(message.timestamp)).toISOString());
console.log('─'.repeat(40) + '\n');
},
{
fromBeginning: true, // read from the start so you see every message
groupId: 'quickstart-group',
}
);
// Keep running until Ctrl+C
process.on('SIGINT', async () => {
console.log('\nStopping subscriber...');
await stop();
process.exit(0);
});
}
main().catch((err) => {
console.error('Subscriber error:', err.message);
process.exit(1);
});