Skip to content

Add Spring Kafka consumer reliability skill and prompt - #71

Merged
rmkr-dev merged 2 commits into
mainfrom
skillbook/spring-kafka-consumer-reliability
Oct 20, 2026
Merged

rmkr-dev merged 2 commits into
mainfrom
skillbook/spring-kafka-consumer-reliability

Conversation

@rmkr-dev

Copy link
Copy Markdown
Owner

Adds a Skillbook entry and a matching Promptbook entry for making Spring for Apache Kafka consumers reliable in production.

Skill: spring-kafka-consumer-reliability-guardrails

  • At-least-once by default: idempotent handlers on a dedupe key, with an inbox table (and outbox for emitted events) in the same DB transaction
  • Auto-commit off, offsets committed after work; BATCH vs RECORD vs MANUAL_IMMEDIATE chosen on purpose
  • One DefaultErrorHandler with bounded exponential backoff, explicit non-retryable exceptions, and a DeadLetterPublishingRecoverer to an owned DLT with partitions ≥ source
  • ErrorHandlingDeserializer for poison pills; @RetryableTopic only when per-key ordering doesn't matter (and never on batch listeners)
  • max.poll.records sized against max.poll.interval.ms, concurrency × replicas ≤ partitions, cooperative-sticky rebalances, static membership, shutdown inside the pod grace period
  • Micrometer lag/retry/DLT/dedupe metrics with bounded tags plus broker-side group lag, failure-path tests on Testcontainers or @EmbeddedKafka, SASL_SSL with credentials only from secrets
  • Copilot / Claude Code / Codex placement notes and a SKILL.md stub

Prompt: harden-spring-kafka-consumer

  • Consumer hardening pass with placeholders, a ranked findings list, a failure-path test matrix, and an exception classification table, topic table, and poll-budget math in the output

Catalogs go to 35 skills / 35 prompts. node scripts/site-check.mjs passes locally.

@rmkr-dev
rmkr-dev merged commit 7385ffa into main Oct 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant