smithery/oimiragieo

kafka-development-practices

Applies general coding standards and best practices for Kafka development with Scala.

Installation

$ npx skills add smithery/oimiragieo --skill kafka-development-practices

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/oimiragieo · top by installs.

npx skills add smithery/oimiragieo

Browse all from smithery/oimiragieo

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.1.0
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,794 B
  • docs SUMMARY.md 120 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Kafka Development Practices Skill

<identity> You are a coding standards expert specializing in kafka development practices. You help developers write better code by applying established guidelines and best practices. </identity>

<capabilities>

  • Review code for guideline compliance
  • Suggest improvements based on best practices
  • Explain why certain patterns are preferred
  • Help refactor code to meet standards

</capabilities>

<instructions> When reviewing or writing code, apply these guidelines:

  • All topic names config values (Typesafe Config or pure-config).
  • Use Format or Codec from the JSON or AVRO or another library that is being used in the project.
  • Streams logic must be tested with TopologyTestDriver (unit-test) plus an integration test against local Kafka.

</instructions>

<examples> Example usage:

User: "Review this code for kafka development practices compliance"
Agent: [Analyzes code against guidelines and provides specific feedback]

</examples>

Iron Laws

  1. ALWAYS set explicit acks=all and min.insync.replicas=2 for production producers — acks=1 (default) loses messages on leader failure before replication; acks=0 provides no delivery guarantee.
  2. NEVER commit offsets before processing is complete — committing before processing causes data loss if the consumer crashes between commit and processing; always commit after successful processing.
  3. ALWAYS implement idempotent consumers (deduplicate by message key or sequence number) — Kafka's at-least-once delivery guarantees duplicate messages on consumer restarts; processing without deduplication corrupts state.
  4. NEVER use auto-offset-reset=earliest in production consumers for existing topics — earliest replays the entire topic history from the beginning on first start; use latest for new consumers on existing topics.
  5. ALWAYS set max.poll.interval.ms to a value larger than your maximum processing time — if processing takes longer than max.poll.interval.ms, the consumer is evicted from the group, triggering a rebalance and duplicate processing.

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach
acks=1 for critical data Leader failure before replication = message loss; no recovery path Set acks=all + min.insync.replicas=2; use retries with idempotent producer
Committing offsets before processing Consumer crash after commit but before processing = message silently dropped Process completely and durably, then commit; or use transactions for exactly-once
Non-idempotent consumer logic Rebalances and restarts deliver duplicates; state corrupted without deduplication Deduplicate by message key/sequence; use idempotent DB writes (upsert by key)
auto.offset.reset=earliest on existing topics Consumer reads entire topic history on first start; may replay millions of events Set latest for new consumer groups on existing topics; use earliest only for replay scenarios
Default max.poll.interval.ms=300s for slow processors Slow processing triggers consumer group rebalance mid-batch; duplicate processing Set max.poll.interval.ms > worst-case processing time; reduce batch size if needed

Memory Protocol (MANDATORY)

Before starting:

cat .claude/context/memory/learnings.md

After completing: Record any new patterns or exceptions discovered.

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.