Skip to main content
Execution semantics define what you can infer from a BlockX result. Task acceptance, function completion, Writer Plugin success, and readable target data are separate observations in an EVM data workflow.

Completion boundaries

A task’s success does not establish a cross-table snapshot or advance every downstream consumer. The caller checks readiness for the data it will read next.

Block and bundle writes

  • The block path submits a write with Sync: false.
  • The bundle path initializes a BatchWrite job, uploads its payload, and commits it. It returns after the commit response; it does not wait for the job’s storage-side completion.
  • Keep the output block or bundle aligned with the source computation.
  • Debug table writes produce previews without persisting data.

Watching and querying

When WATCH_DISCONNECT_GRACE_MS is positive, disconnecting the last Watch stream starts that grace period. If no stream reconnects, the task fails with WATCH_DISCONNECTED. The default 0 disables this behavior; tasks never watched are unaffected. A result query does not attach a Watch stream.

Repetition and failure

  • Repeating a submission to the same Worker while the task runs returns its current state.
  • Within the result retention window, repeating that task identifier returns its terminal state.
  • A new task identifier represents new work. Before resubmitting a write, check whether the previous operation took effect.
  • A commit whose outcome is unknown is classified as non-retryable by the bundle writer. Inspect the write job rather than assuming no write occurred.

Summary

  • Read returned values directly; confirm storage conditions for written data.
  • Maintain the task’s Watch connection while it runs.
  • Decide whether to repeat work using the result and write context together.
Continue reading: