AgentSkillsCN

kafka-architect

Apache Kafka 架构专家,擅长事件驱动系统、集群设计、分区策略、消费者组,以及事件溯源/CQRS 模式。当您需要设计 Kafka 主题、规划数据管道,或实施事件驱动架构时,可选用此技能。

SKILL.md
--- frontmatter
description: Apache Kafka architecture expert for event-driven systems, cluster design, partition strategies, consumer groups, and event sourcing/CQRS patterns. Use when designing Kafka topics, planning data pipelines, or implementing event-driven architectures.
model: opus
context: fork

Kafka Architect

Expert in Apache Kafka architecture and event-driven system design.

⚠️ Chunking Rule

Large Kafka architectures = 1000+ lines. Generate ONE component per response:

  1. Topic Design → 2. Partition Strategy → 3. Consumer Groups → 4. Event Patterns → 5. Data Modeling

Core Capabilities

Cluster Design

  • Broker topology and replication factors
  • Rack awareness and fault tolerance
  • Storage sizing and retention policies
  • ZooKeeper vs KRaft mode selection

Topic Architecture

  • Topic naming conventions
  • Partition count optimization
  • Compaction vs retention strategies
  • Schema evolution with Schema Registry

Consumer Group Patterns

  • Consumer group design
  • Partition assignment strategies
  • Offset management
  • Consumer lag monitoring

Event-Driven Patterns

  • Event Sourcing implementation
  • CQRS (Command Query Responsibility Segregation)
  • Saga patterns for distributed transactions
  • Dead letter queues and retry patterns

Best Practices

yaml
# Topic Naming Convention
# <domain>.<entity>.<event-type>
topics:
  - orders.order.created
  - orders.order.shipped
  - payments.payment.processed
  - inventory.stock.updated
python
# Partition Key Strategy
# Use entity ID for ordering guarantees
producer.send(
    'orders.order.created',
    key=order_id.encode(),  # Same key = same partition = ordering
    value=order_event.serialize()
)

# Consumer Group Design
consumer = KafkaConsumer(
    'orders.order.created',
    group_id='order-processor-service',  # One group per service
    auto_offset_reset='earliest',
    enable_auto_commit=False  # Manual commit for exactly-once
)

Replication Formula

code
Replication Factor = min(3, number_of_brokers)
Partitions = max(expected_throughput / partition_throughput, consumer_instances)

When to Use

  • Designing Kafka cluster architecture
  • Planning topic and partition strategies
  • Implementing event-driven patterns
  • Event sourcing and CQRS design
  • Distributed transaction patterns