Software does not simply break — it reveals. Every fault, latency spike, and cascading failure is a signal about the assumptions baked into your design. The question is whether your system — and your test suite — is equipped to hear it.
This workshop fuses two complementary disciplines into one intensive, hands-on session:
Probabilistic Testing with Punit — the statistical tooling that lets Java teams measure, enforce, and version-control the resilience properties of non-deterministic systems: LLM integrations, ML inference, distributed services, and randomized algorithms that traditional binary pass/fail tests were never designed to handle.
Resilience Engineering for Java — the design principles, and architectural patterns that turn pressure into performance, like circuit breakers, fault injection, and TDD-driven failure handling.
The thread connecting both halves is a concrete end-to-end scenario: an AI-enriched Java application, where non-deterministic LLM calls meet production-grade resilience requirements. Participants work through the full arc — from writing probabilistic test specifications and latency percentile assertions, to implementing and verifying the resilience patterns that make those specifications pass.
Participants leave with a concrete vocabulary,
...
show more
Software does not simply break — it reveals. Every fault, latency spike, and cascading failure is a signal about the assumptions baked into your design. The question is whether your system — and your test suite — is equipped to hear it.
This workshop fuses two complementary disciplines into one intensive, hands-on session:
Probabilistic Testing with Punit — the statistical tooling that lets Java teams measure, enforce, and version-control the resilience properties of non-deterministic systems: LLM integrations, ML inference, distributed services, and randomized algorithms that traditional binary pass/fail tests were never designed to handle.
Resilience Engineering for Java — the design principles, and architectural patterns that turn pressure into performance, like circuit breakers, fault injection, and TDD-driven failure handling.
The thread connecting both halves is a concrete end-to-end scenario: an AI-enriched Java application, where non-deterministic LLM calls meet production-grade resilience requirements. Participants work through the full arc — from writing probabilistic test specifications and latency percentile assertions, to implementing and verifying the resilience patterns that make those specifications pass.
Participants leave with a concrete vocabulary, a proven pattern catalogue, and running JUnit 5 tests that express and verify resilience as first-class distributional contracts, and not vague aspirations.
show less