SkyRaun / Incident challenges

Symptoms, a terminal, and nobody telling you which layer lied.

These are not security CTFs. They are infrastructure incidents: a system with deliberately introduced faults, realistic symptoms, misleading signals left deliberately in place, and no answer key until you have committed to one.

runs locally docker compose · toxiproxy · real brokers no answer key up front
The seven things you have to do

Every incident is scored the way a real one is.

Not “did you find it”. Whether you can show your reasoning, produce evidence, and demonstrate that the repair holds.

01 — Observe the symptoms

Read what you are actually given, not what you assume is happening.

02 — Form a hypothesis

Written down, specific enough to be wrong.

03 — Gather evidence

Pick the tool that inspects the layer you suspect. Wrong layer, wrong tool, wasted hour.

04 — Identify the real failure

Separate the cause from the three things that merely correlate with it.

05 — Repair the system

Config or architecture. Name the tradeoff you just accepted.

06 — Prove the repair

Reproduce the original conditions and show the failure is gone.

07 — Explain the mechanism

In your own words. This is the part that survives into your next job.

Three you will meet

Try to diagnose these before you open the evidence.

These are real challenge premises from the curriculum. The buttons below are the honest order of operations: symptom, then evidence, then — only once you have committed — the mechanism.

incident · messaging

Orders are occasionally processed twice.

Support has three complaints this week about duplicate fulfilment. It is not every order. It is not a particular customer. Your worker code has no obvious loop, the queue has no obvious misconfiguration, and the failure will not reproduce when you run it by hand.

incident · black box

API latency periodically spikes to 8–12 seconds.

Most requests are fine. Every so often, a request takes eight to twelve seconds. It is not correlated with payload size, endpoint, or customer. The application traces show the time disappearing somewhere your instrumentation does not cover.

incident · event log

Consumers occasionally process old data after a deployment.

After a release, a handful of consumers appear to reprocess events from hours earlier. Downstream systems see stale state briefly, then recover. Nobody changed the consumer code in that release.

How you get there

You are not thrown into a black box on day one.

Guidance is withdrawn in five deliberate stages. Each one removes a crutch the previous stage let you lean on.

01

Guided

The concept is named and the system is built for you. “Today we are studying HTTP timeout ambiguity.”

crutch removed None yet — this is where the vocabulary gets built.

02

Experimental

You change the variables and predict first. Raise the timeout, add a retry, remove idempotency, slow the worker.

crutch removed The expected answer. You have to commit before observing.

03

Fault lab

You know the system. You do not know what has been broken in it.

crutch removed Knowing which knob was turned.

04

Incident

Symptoms only, arriving the way they really do — through support, days late, without a stack trace.

crutch removed Knowing which component is involved at all.

05

Black box

The failing layer is not disclosed. It could be DNS, the transport, the pool, the broker, or your own logic.

crutch removed Everything. This is just the job.

The challenges are in the repo, not behind a subscription.

Meaningful incidents run locally with Docker Compose, toxiproxy and real brokers. A one-time purchase gets a complete product, not a teaser for a hosted service.