skills/streaming-pipeline-architect/SKILL.md
Kafka Streams, Flink, Spark Streaming, and CDC for real-time data pipelines. Activate on: streaming, Kafka Streams, Flink, Spark Streaming, CDC, Debezium, real-time pipeline, event stream processing. NOT for: message broker setup (use event-driven-architecture-expert), batch processing (use batch-processing-optimizer).
npx skillsauth add curiositech/windags-skills streaming-pipeline-architectInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Design and build real-time data pipelines using Kafka Streams, Apache Flink, Spark Structured Streaming, and Change Data Capture.
Activate on: "streaming pipeline", "Kafka Streams", "Flink", "Spark Streaming", "CDC", "Debezium", "real-time pipeline", "event stream processing", "stream-table join", "windowed aggregation"
NOT for: Message broker configuration → event-driven-architecture-expert | Batch ETL optimization → batch-processing-optimizer | Data warehouse loading → data-warehouse-optimizer
| Domain | Technologies | |--------|-------------| | Stream Processing | Apache Flink 1.20+, Kafka Streams 3.8+, Spark Structured Streaming | | CDC | Debezium 2.7+, Fivetran, Airbyte, Maxwell | | Managed | Confluent Cloud, AWS Kinesis, GCP Dataflow | | Connectors | Kafka Connect, Flink CDC connectors, Spark connectors | | State | RocksDB (Flink/Kafka Streams), Delta Lake checkpoints |
PostgreSQL Debezium Kafka Stream Processor
┌──────────┐ ┌─────────────────┐ ┌──────────┐ ┌─────────────────┐
│ WAL │────→│ Debezium │────→│ Topics │────→│ Flink / KS │
│ (logical │ │ (Kafka Connect)│ │ per │ │ - Enrich │
│ repl.) │ │ │ │ table │ │ - Aggregate │
└──────────┘ └─────────────────┘ └──────────┘ │ - Transform │
└────────┬────────┘
│
┌────────────────────────┤
↓ ↓
Elasticsearch Snowflake / Delta
(search index) (analytics)
-- Flink SQL: 5-minute tumbling window revenue aggregation
CREATE TABLE orders (
order_id STRING,
amount DECIMAL(10,2),
store_id STRING,
event_time TIMESTAMP(3),
WATERMARK FOR event_time AS event_time - INTERVAL '10' SECOND
) WITH (
'connector' = 'kafka',
'topic' = 'orders',
'format' = 'json'
);
SELECT
store_id,
TUMBLE_START(event_time, INTERVAL '5' MINUTE) AS window_start,
COUNT(*) AS order_count,
SUM(amount) AS total_revenue
FROM orders
GROUP BY
store_id,
TUMBLE(event_time, INTERVAL '5' MINUTE);
Source Topic: raw-events
↓
Filter (discard invalid)
↓
Map (normalize schema)
↓
Branch ──→ [high-priority] → enrich → Priority Topic
│
└──→ [standard] → aggregate(5min window) → Metrics Topic
KafkaStreams topology = builder.build();
topology.describe(); // prints processing graph
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.