Skip to content

Idempotency ​

  • Render is a pure function: same inputs, same bytes. Ids and timestamps never enter the pixel path.
  • Server renders with @sealpixel/render are the same pure function. The renderer stores nothing and keeps no job cache, so a retry renders again and returns the same bytes. A host that caches results chooses its own key; op ids and timestamps do not belong in it, because they never change the pixels.
  • Client dispatch with an id already in the log is a no-op.
  • Scripts and infrastructure in the repository run twice without changes: builds skip when inputs match, goldens rewrite only on change, the SST stack shows no diff on a second deploy.