A downloadable lab

The provider accepted the request. The client saw a timeout. Should it send again?

A free, runnable Java 21 lab for one notification failure boundary. Compare a broken retry, stable-key retry, and UNKNOWN handling with a read-only acceptance lookup. This is an independent sample; the separately sold Spring Boot kit is not included.

Run it locally
Download and extract the source ZIP, then run ./run.sh with JDK 21 or newer and a POSIX shell. Windows users can follow the javac/java commands in README.md. No Docker, Maven/Gradle, database, third-party dependencies, network calls, login or provider credentials are needed.

Verified scope
The documented Mac mini run with JDK 21.0.11 passed seven explicit checks. The broken retry check passes by demonstrating duplicate accepted effects. Other checks cover stable-key dedupe, stopping after an uncertain response without provider dedupe, a bounded retry budget, changed-payload rejection, a positive acceptance lookup, and an inconclusive missing lookup.

Limitations
The provider and acceptance lookup are synthetic and in process; all state is in memory. ACCEPTED means accepted by the fake provider, not delivered to a recipient. NOT_FOUND does not prove non-acceptance or authorize another send. A new provider object starts empty. This sample does not test real network timeouts, persistence, restarts, concurrency, an outbox, webhooks, provider key expiry, multitenancy or production readiness. It makes no universal exactly-once delivery guarantee.

License
The free sample is MIT licensed. Commercial use, modification and redistribution are allowed with preservation of the copyright and license notice. The LICENSE file includes the full terms and warranty disclaimer. This grant covers this sample only; it does not grant access to the paid kit or change the paid kit license.

AI disclosure
The code and explanatory text were created with generative AI assistance and tested against the explicit fake-provider contract.

Optional paid extension
The separate Notification Failure Lab for Spring Boot covers persisted-work recovery and duplicate/out-of-order receipts in addition to timeout boundaries, with PostgreSQL/Testcontainers tests. It is USD 29 once for one named purchaser under its separate buyer license. The free sample remains usable without purchasing it.

View the separate paid Spring Boot lab on Gumroad

Download

Download
notification-timeout-lab-github-source-0.1.0-public.zip 9 kB

Install instructions

Extract notification-timeout-lab-github-source-0.1.0-public.zip, read README.md and LICENSE, then run ./run.sh. Requires JDK 21 or newer and a POSIX shell. On Windows, follow the explicit javac/java commands in README.md. No downloaded dependencies, database, Docker, network access or provider credentials are required.