Fluorite
Concepts

Embeds

Embeds render the live draft — the update model, ETag polling, and the frozen wire schema.

<Workflow id /> renders the workflow's current saved graph, not a published snapshot. There is no publish step between saving in the editor and what an embed shows: every save is visible to embeds on their next revalidation.

The delivery contract

  • GET /api/v1/workflows/:id is public and unauthenticated; the workflow id is the capability. It serves { schemaVersion: 1, graph, assets }.
  • Responses carry an ETag derived from the workflow's updatedAt, and the endpoint honours If-None-Match with a bodyless 304 — so polling an unchanged workflow costs almost nothing.
  • The embed runtime caches in-flight fetches, retries with jittered backoff, and revalidates conditionally. <Workflow revalidate={ms} revalidateOnFocus> turns on polling.
  • When the graph changes, the renderer hot-swaps the material's color node on the existing WebGPU context — never a teardown, so updates are flicker-free.

The frozen schema

The graph wire shape is frozen as schemaVersion: 1. A breaking change bumps the version, and clients refuse versions they don't understand (UNSUPPORTED_SCHEMA) rather than misrender.

Rendering

Shaders execute on the viewer's GPU — WebGPU where available, WebGL2 as a fallback. The server never evaluates a graph and records no embed analytics.

On this page