voluta 0.x default reference

Samples

Which sample teaches which idea — pick a path, don’t boil the ocean.

Samples live under samples/. Shared glue is in Voluta.Samples.Shared.

They are teaching tools, not product templates. Each one isolates a concept so you can see the runtime without five concerns fighting in one file.

Catalog

SampleWhat it is forCommand
01 — Hello WorldThe core loop: channels, cycle, StreamMode.Updates, in-memory checkpointsdotnet run --project samples/01-HelloWorld
02 — Interrupt / ResumeHuman-in-the-loop: pause, inspect payload, resume with a Commanddotnet run --project samples/02-InterruptResume
03 — AOT Smoke“Does the core publish under Native AOT?” Linear graph, publish pathdotnet run --project samples/03-AotSmoke · dotnet publish samples/03-AotSmoke -c Release
04 — ReviewBotMulti-node plan → sandboxed tools → review (more realistic shape)dotnet run --project samples/04-ReviewBot -- --offline --root .
05 — DocQDocs Q&A over a sandboxed folder (tools + questions)dotnet run --project samples/05-DocQ -- --offline --root . --question "What is voluta?"

Suggested order (and why)

  1. 01-HelloWorld — If you skip this, the rest feels like magic. You need the feel of a superstep, a conditional edge, and streaming once.
  2. 02-InterruptResume — This is the durability story. Same thread id, different process (or at least a second call): interrupt → checkpoint → resume. Almost every production agent eventually needs “wait for a human.”
  3. 03-AotSmoke — Only if AOT / publish size matters to you. Otherwise leave it until later.
  4. 04 / 05 — When you want multi-node structure and tool-ish side effects without inventing your own sandbox.

How to read a sample

  1. Run it once. Watch the stream.
  2. Open the graph builder section — channels first, then edges. Ask: why this kind?
  3. Open one node. Ask: what does it write, and what does it leave alone?
  4. Only then read helpers / CLI flags.

If a sample feels “too big,” go back to 01 and re-draw the topology on paper. The runtime is small; the sample surface grows with the scenario, not with framework ceremony.