By Chason ArthurRevision 126.014Published Updated

How-to / First result to independent work

Run it. Explain it. Extend it.

Start with the result you can see, then choose how far into the implementation you want to go.

Your first five minutes

  1. Open the playground and keep its default sample.
  2. Keep the default 12 messages, 3 workers and early cancellation. Run without safeguards, then with safeguards. Compare peak active work and workers left at cancellation.
  3. Read the trace from top to bottom.
  4. Click View the code. Find the function that changed the outcome.
  5. Use Reset, then predict another result before clicking Run.
Open the independent environment

A 15-minute refresher

Run one failure and one safeguarded version. Read tutorial Steps 1–4. Write down the input, the violated rule, the decision that enforces it, and the remaining limit. Keep that four-part explanation beside the code.

Show the canceled collector first. Explain who owns the queue, who closes it, how blocked work stops and why the function waits for workers. Separate concurrency safety from the delivery guarantee.

A guided implementation session

Download and extract the matching source. Begin with GETTING_STARTED.md. The included preview serves the prebuilt browser application on your own computer. Follow the eight tutorial steps, then run the native checks. The public source viewer is read-only; local source files are yours to edit.

python preview.py
# Open the loopback address printed by the preview.
# Stop the preview with Ctrl+C.

Use the language-specific instructions below before rebuilding. Serve the application over HTTP; opening an HTML file directly does not provide the module and WebAssembly environment used by the preview.

# With Go 1.27:
cd src
go test ./...
go run ./cmd/server
# Native race checks additionally need a supported C compiler:
go test -race ./...

Read the exact setup instructions

Independent challenge

Make one new guarantee.

Add a bounded retry budget for a simulated transient error. Keep one logical message identity across attempts, preserve the worker limit, and make cancellation interrupt the retry delay.

Write the expected behavior before changing the implementation. Keep the original failure as a regression case. Explain the tradeoff you accepted and the result that would make you reconsider it.

Record an explanation another person can follow

  1. Show the failure before showing the code.
  2. Keep the same sample while switching the implementation.
  3. Read one decision from the trace, then show its source.
  4. State the invariant the change protects.
  5. End with the boundary the experiment has not tested.

The download includes a recording script, a test matrix and a revision record. Use captions and keep the code readable at the target viewing size.

Primary references and further reading

References support the language and runtime concepts. The lesson, scenarios and explanations are original Zyel Lab material.

Keep exploring

Follow the question you have next.

Build the safeguards

Eight explained steps, tradeoffs, pitfalls and a checkpoint before moving on.

Read the tutorial

Compare the choices

Choose a pattern and an environment for the problem you actually have.

Compare approaches