Reliability Labs

Message Delivery Semantics Lab

Simulate ACK timing, crashes, bounded retries, redelivery, duplicate effects, and stable idempotency entirely in your browser.

Local workbench
Input stays in this browserRun with Ctrl/⌘ + Enter

Deterministic browser-only state machine

Message Delivery Semantics Lab

Move the ACK around one business side effect, inject a crash, and inspect what the broker can—and cannot—safely repeat.

Teaching scenarios

Load a known failure window

Choose inputs or load a preset. Nothing leaves this browser.

Deterministic result

Timeline and outcome

    Boundary and improvement guidance

      How to use it

      Use this lab to make one failure window visible at a time. Choose a delivery policy, place the ACK before processing or after the modeled business side effect, inject a failure, decide whether the consumer has a stable message ID, and keep the retry limit finite. The same inputs always produce the same ordered timeline.

      The counters distinguish deliveries, successful handler executions, and applied business side effects. That separation matters: a broker can redeliver an unacknowledged record, but it cannot infer whether a database commit, HTTP request, payment, or email already completed.

      Start with the four presets, then change one input at a time. Read Message Delivery Semantics Lab: Crash, Retry, and Idempotency Examples for a guided walkthrough. The tutorial connects the timelines to Message Delivery Semantics Explained, the Idempotent Consumer Pattern, Dead Letter Queue recovery, and Spring Kafka ACK, retry, and dead-letter boundaries.

      This model deliberately does not generate Spring Kafka configuration. Framework settings are versioned application choices, while external side effects still need their own stable identity, idempotency, reconciliation, and operated recovery contracts.

      Related tools

      Keep the workflow moving

      These local-first tools often pair well with Message Delivery Semantics Lab.

      Available tool

      Java Concurrency Budget Lab

      Model fixed pools, virtual threads, resource guards, deadlines, and cooperative cancellation with a deterministic browser-only timeline.

      Open tool

      FAQ

      Message Delivery Semantics Lab questions

      Does this lab connect to Kafka or upload any input?

      No. It is a deterministic teaching model that runs entirely in your browser without a broker, account, database, API, or input upload.

      Does the lab provide an exactly-once switch?

      No. It keeps broker acknowledgement, consumer processing, business state, and arbitrary external effects separate instead of presenting exactly once as a universal toggle.

      Can I copy the result into Spring Kafka configuration?

      The copied output is an explanatory timeline summary, not production configuration. Real acknowledgement and transaction settings must be validated against your consumer, broker, database, and side effects.