# Kafka Node

> Kafka with KafkaJS

- Skill: `comeonoliver/kafka-node` (Agent Skill)
- Install (CLI): `npx skillmds@latest add comeonoliver/kafka-node`
- Raw SKILL.md: https://api.skillmd.com/api/skills/comeonoliver/kafka-node/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ComeOnOliver (https://skillmd.com/u/comeonoliver)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/comeonoliver/kafka-node

---

# Kafka with KafkaJS

## Setup
```bash
npm install kafkajs
```

## Producer
```typescript
const kafka = new Kafka({ clientId: 'app', brokers: ['localhost:9092'] });
const producer = kafka.producer();
await producer.connect();
await producer.send({ topic: 'events', messages: [{ key: 'user-1', value: JSON.stringify(event) }] });
```

## Consumer
```typescript
const consumer = kafka.consumer({ groupId: 'my-service' });
await consumer.subscribe({ topic: 'events' });
await consumer.run({
    eachMessage: async ({ topic, partition, message }) => {
        const event = JSON.parse(message.value!.toString());
        await processEvent(event);
    },
});
```

## Admin
```typescript
const admin = kafka.admin();
await admin.createTopics({ topics: [{ topic: 'events', numPartitions: 3 }] });
```

## Key Patterns
- Message keys for partition ordering
- Consumer groups for parallel processing
- Idempotent consumers (handle duplicates)
- Transactional producer for exactly-once

