ancoleman/streaming-data
Build event streaming and real-time data pipelines with Kafka, Pulsar, Redpanda, Flink, and Spark. Covers producer/consumer patterns, stream processing, event sourcing, and CDC across TypeScript, Python, Go, and Java. When building real-time systems, microservices communication, or data integration pipelines.
npx skills add https://github.com/ancoleman/ai-design-components --skill streaming-data
Build production-ready event streaming systems and real-time data pipelines using modern message brokers and stream processors.
Use this skill when:
Message Brokers (Kafka, Pulsar, Redpanda):
Stream Processors (Flink, Spark, Kafka Streams):
At-Most-Once:
At-Least-Once:
Exactly-Once:
See references/broker-selection.md for detailed comparison.
Quick decision:
See references/processor-selection.md for detailed comparison.
Quick decision:
Choose language-specific guide:
Send events to a topic with error handling:
1. Create producer with broker addresses
2. Configure delivery guarantees (acks, retries, idempotence)
3. Send messages with key (for partitioning) and value
4. Handle delivery callbacks or errors
5. Flush and close producer on shutdown
Process events from topics with offset management:
1. Create consumer with broker addresses and group ID
2. Subscribe to topics
3. Poll for messages
4. Process each message
5. Commit offsets (auto or manual)
6. Handle errors (retry, DLQ, skip)
7. Close consumer gracefully
For production systems, implement:
START: What are requirements?
1. Need Kafka API compatibility?
YES → Kafka or Redpanda
NO → Continue
2. Is multi-tenancy critical?
YES → Apache Pulsar
NO → Continue
3. Operational simplicity priority?
YES → Redpanda (single binary, no ZooKeeper)
NO → Continue
4. Mature ecosystem needed?
YES → Apache Kafka
NO → Redpanda (better performance)
5. Task queues (not event streams)?
YES → RabbitMQ or message-queues skill
NO → Kafka/Redpanda/Pulsar
START: What is latency requirement?
1. Millisecond-level latency needed?
YES → Apache Flink
NO → Continue
2. Batch + stream in same pipeline?
YES → Apache Spark Streaming
NO → Continue
3. Embedded in microservice?
YES → Kafka Streams
NO → Continue
4. SQL interface for analysts?
YES → ksqlDB
NO → Flink or Spark
5. Python primary language?
YES → Spark (PySpark) or Faust
NO → Flink (Java/Scala)
TypeScript/Node.js:
Python:
Go:
Java/Scala:
Store state changes as immutable events. See references/event-sourcing.md for:
Capture database changes as events. See references/cdc-patterns.md for:
Implement transactional guarantees. See references/exactly-once.md for:
Production-grade error management. See references/error-handling.md for:
Run these scripts for token-free validation and generation:
python scripts/validate-kafka-config.py --config producer.yaml
python scripts/validate-kafka-config.py --config consumer.yaml
Checks: broker connectivity, configuration validity, serialization format
python scripts/generate-schema.py --type avro --entity User
python scripts/generate-schema.py --type protobuf --entity Event
Creates: Avro/Protobuf schema definitions for Schema Registry
bash scripts/benchmark-throughput.sh --broker localhost:9092 --topic test
Tests: Producer/consumer throughput, latency percentiles
See examples/typescript/ for:
See examples/python/ for:
See examples/go/ for:
See examples/java/ for:
| Feature | Kafka | Pulsar | Redpanda | RabbitMQ |
|---------|-------|--------|----------|----------|
| Throughput | Very High | High | Very High | Medium |
| Latency | Medium | Medium | Low | Low |
| Event Replay | Yes | Yes | Yes | No |
| Multi-Tenancy | Manual | Native | Manual | Manual |
| Operational Complexity | Medium | High | Low | Low |
| Best For | Enterprise, big data | SaaS, IoT | Performance-critical | Task queues |
| Feature | Flink | Spark | Kafka Streams | ksqlDB |
|---------|-------|-------|---------------|--------|
| Processing Model | True streaming | Micro-batch | Library | SQL engine |
| Latency | Millisecond | Second | Millisecond | Second |
| Deployment | Cluster | Cluster | Embedded | Server |
| Best For | Real-time analytics | Batch + stream | Microservices | Analysts |
| Language | Library | Trust Score | Snippets | Use Case |
|----------|---------|-------------|----------|----------|
| TypeScript | KafkaJS | High | 827 | Web services, APIs |
| Python | confluent-kafka-python | High (68.8) | 192 | Data pipelines, ML |
| Go | kafka-go | High | 42 | High-perf services |
| Java | Kafka Java Client | High (76.9) | 683 | Enterprise, Flink/Spark |
For authentication and security patterns, see the auth-security skill.
For infrastructure deployment (Kubernetes operators, Terraform), see the infrastructure-as-code skill.
For monitoring metrics and tracing, see the observability skill.
For API design patterns, see the api-design-principles skill.
For data architecture and warehousing, see the data-architecture skill.
Take ancoleman/streaming-data from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.