Skip to main content
José David Baena
Kafka Reliability Field Guide

Kafka reliability / Recovery planner

Kafka Recovery, Retry & DLQ Planner

What evidence and consistency boundary must exist before you retry, quarantine, or replay these records?

Baseline: apache-java-4.3.1 · source 26b251a451ce

This deterministic teaching model runs in your browser and never connects to Kafka. It accepts only bounded synthetic controls. Curated scenario and variant IDs may appear in a shareable URL; custom local values, payloads, brokers, credentials, and production identifiers never do. Exports include only what you request.

Deterministic teaching model · apache-java-4.3.1

R03: One Kafka transaction can join DLQ and source progress

Which participants share the decision?

Choose a Kafka teaching scenario
Change bounded local inputs

Changing these controls creates a custom local example. The share link keeps only the original curated preset; exports can include your bounded local values.

The planner never executes the selected operation.

Only one same-Kafka transaction can join those Kafka participants.

Retry topics do not preserve partition processing order by default.

Independent from group checkpoints and sink protection.

A source record can outlive this boundary.

At/after expiry is tested explicitly.

Includes the first attempt.

Conditional nested upper bound only.

Do not assume all layers multiply independently in production.

0–600,000 virtual milliseconds.

Current outcome · step 0 of 5

The failed source record remains at offset 10; no quarantine publication, progress change, or recovery authority exists yet.

curated preset

Default synthetic example loaded.

Disposition consistency

Source stored next offset
10
Quarantine publications / visible
0 / no
Transaction decision / response
none / none
Input restored
no

Retry and ordering

Conditional attempt upper bound
8
Attempts inside deadline
0
0 ms of 30000 ms.
Ordering contract
partition-order
Later record completed first
no

Evidence and authority

effect
unknown
identity
unknown
authority
unknown
dependency
unknown
schema
unknown
sourceRange
unknown
Protection current
yes
Suggested disposition
needs reconciliation

Runbook

Canary
not recorded
Stop / verification items
0 / 0
Manifest
not requested
Cross-cluster profile
same-cluster

Invariant results

  • Every normally skipped failed record has a durable disposition

    holds in model

    Source progress has not crossed the failed record without visible quarantine.

  • Transactional DLQ and source progress share one decision

    holds in model

    A committed recovery transaction exposes both Kafka participants together in the bounded model.

  • Retry flow preserves the declared ordering contract

    holds in model

    No selected action contradicts the declared order.

  • Reported evidence establishes automatic replay permission

    violated in model

    Missing, negative, or expired evidence blocks automatic effect-capable replay.

Ordered trace

The state table shows model truth. Each observer result says what the current caller can establish at that step.

Ordered deterministic actions through step 0. Print and exports contain the complete bounded trace.
StepActorActionObserver result
10 msoperatorBegin ordinary Kafka transactionAn ordinary same-cluster Kafka transaction begins. No source progress or quarantine record is committed yet.
21 msoperatorAppend synthetic DLQ recordThe synthetic quarantine record is acknowledged under the selected Kafka publication contract.
32 msoperatorAttach source next offset 11Source next offset 11 is attached to the pending Kafka transaction.
43 msprocessCrash before commit requestThe crash occurs before any commit request. The bounded ordinary transaction resolves as abort; source progress remains unchanged.
54 msoperatorRestore input positionInput position is restored to stored next offset 10.

Evidence and limits

Claims

Primary sources

Assumptions and known limits
  • All ranges, identities, and evidence answers are synthetic and bounded.
  • The planner never contacts Kafka or emits executable reset, delete, or redrive commands.
  • Reported evidence is not verified evidence or replay authorization.
Default synthetic example loaded.

The planner can block a replay; it cannot authorize one

Commit-first and publish-first traces expose missing or duplicate quarantine. A same-cluster Kafka transaction can join a DLQ record and source offsets, but redrive effects still need identity, retention, schema, authority, dependency, canary, stop, and verification evidence. All answers remain reported for a synthetic example rather than verified against a real system.

Assumptions and limits

  • Feature levels, protocol versions, client settings, and binary versions remain separate facts.
  • Replication examples use stable committed ISR membership between declared transitions.
  • The ordinary transaction profile disables transaction.two.phase.commit.enable.
  • Browser traces are deterministic teaching models, not broker observations or production recommendations.