SCHEDULE · HAND OFF · VERIFY

Long-running task: inspect progress without premature success

Run six local transformations. Watch dependency gates, worker assignments, retries and the exact artifacts produced.

Finite DAG · actual local artifacts

Scroll the dependency board horizontally to inspect every task. The task selector below provides the same states and artifacts as text.

Input and task inspection

Your experiment

Increase histogram duration to 20 seconds. Pause during execution and inspect its missing committed artifact. Lower the deadline and verify that cancellation prevents final acceptance.

Load takes 2s, filtering 4s, joining 3s and verification 5s. Branch durations are adjustable. Default parallel execution with two workers takes 26 modeled seconds; serial execution or one worker takes 34. Use 0.5× for a slower inspection.

Load → filter → sum/histogram → join → verify. The filter retains values at least as large as the chosen threshold. Sum produces count/total; histogram produces actual bins. Verification recomputes count and weighted sum from the bins. A verified result exists only if they agree.

Scheduler events

Offline deterministic dependency scheduler, not an A2A/ADK protocol implementation, Java coroutine runtime, Airflow/Dagster service or LLM agent. All transformations execute locally without arbitrary code, external tools or network calls. Task durations are fixed teaching inputs independent of input length. Ready tasks take free worker slots in the displayed task order. A failed attempt commits no artifact; retries wait the chosen fixed delay. Exhausted failure blocks descendants, or cancels unfinished work under fail-fast. Tasks completing exactly at the deadline succeed before cancellation of unfinished tasks. No scheduling overhead, durable checkpoint, distributed race, compensation, network latency or persistent resume is modeled. Workflow concepts · DAG dependencies.

Distinguish progress from committed success

Increase Histogram duration to twenty with two workers and independent branches. At modeled second twenty, histogram is still running and its committed artifact is null, although sum already finished at fourteen. Joining must wait until histogram finishes at twenty-six; verification completes at thirty-four. Lower Workflow deadline to twenty: histogram is cancelled and no verified output is returned. A progress display is therefore not a promise of eventual success. This local scheduler illustrates that distinction without executing a remote long-running tool or implementing its acknowledgement and resume protocol.

Control data and dependencies

The JSON integer array is the actual input, limited to twenty-four integers between minus one thousand and one thousand. Minimum retained value keeps entries greater than or equal to that threshold; duplicates remain distinct observations. Branch dependency either lets histogram and sum start independently after filtering or makes histogram wait for sum. Worker slots limits simultaneous tasks to one or two. Sum duration and Histogram duration specify invented service seconds independent of input size. Load, filter, join and verify take two, four, three and five modeled seconds respectively. These are teaching inputs, not measurements of Java, Dagster or an LLM.

Observe a retry while other work continues

Restore default durations and deadline sixty. Inject a first-attempt sum failure, keep two attempts and retry delay two. Sum fails at fourteen and releases its worker, retries at sixteen, and succeeds at twenty-four. Histogram still completes at eighteen. Join then ends at twenty-seven and verification at thirty-two. Increase retry delay to six and the verified outcome moves to thirty-six. Set maximum attempts to one: independent histogram work may complete, but join is blocked and there is no verified result. Compare the task error and attempt count with the final preview rather than treating every transient error as permanent failure.

Separate attempt failure from workflow failure

Open Failure and retry controls. Injected failure task chooses sum, histogram, join, or no injected failure. Failure behavior chooses the first attempt or every attempt. Maximum attempts includes the original attempt; one means no retry. Retry delay is a fixed wait after a failed attempt, during which its worker is free. Exhausted failure policy either finishes independent work while blocking descendants or cancels unfinished work immediately. Disabled controls have no effect on the current scenario. Inject one extra zero into histogram counts produces inconsistent artifacts: the weighted sum stays unchanged but the count increases, so verification rejects the result. Retries cannot repair that deterministic corruption.

Inspect states, artifacts and time

Play and Pause inspect the generated schedule over sixty viewing seconds. Next event advances to the next scheduler state; Restart rewinds without changing inputs; Speed changes the inspection pace, while Modeled time scrubs the schedule and pauses playback. Editing inputs rebuilds the scenario and starts inspection unless reduced motion is requested. Inspect task selects a node, as does clicking its card. The text below reports dependencies, attempt, worker, error and committed artifact, providing an alternative to the diagram. A running task has no committed output. Final preview describes the eventual outcome even when the board still shows an earlier state.

Use a bounded local contract

Workflow deadline cancels unfinished tasks, but completions exactly at the deadline are processed first. With default inputs a deadline of twenty-six permits verification and twenty-five cancels it. Every transformation is executed locally in memory; there is no persisted checkpoint, distributed worker, remote tool, external side effect or production benchmark. The ready-task order is fixed by the displayed graph. Dependency edges express this fixture policy; they do not implement an ADK agent conversation or the complete Dagster asset system. A verified result proves only that this local histogram and sum agree on count and weighted total.

Views are my own and do not represent any employer, past or present.

Search