Example files

Article: https://youdozi.github.io/en/posts/2026-10-30-webclient-timeout-retry/

Extract into a new empty directory and run commands from that directory.

Environment
JDK 17 and Gradle 8.4; Boot BOM 3.5.7 and MockWebServer 4.12.0. Initial dependency resolution needs network access. No Gradle wrapper is bundled.

Commands
gradle --no-daemon clean test

Scope
Nine tests: seven loopback HTTP cases and two synthetic exchange cases using virtual time. GET only; retries only HTTP 503 twice. No TCP connect-timeout reproduction, production latency guarantee, write idempotency, Retry-After, jitter or load coordination. Each subscription can make up to three application attempts.

Read the article for outputs, conditions and failure cases. PROVENANCE.json records the source and file hashes; hashes establish identity, not correctness.
