Artifacts and lineage

The primary object in Ogun is neither the URL nor the file. It is the run and the artifact graph.

Pixel-art translation of J. M. W. Turner, The Burning of the Houses of Lords and Commons, 16 October 1834 (1834 to 1835): the Houses of Parliament burn at night, with the fire reflected in the Thames.Pixel-art translation of J. M. W. Turner, The Burning of the Houses of Lords and Commons, 16 October 1834 (1834 to 1835): the Houses of Parliament burn at night, with the fire reflected in the Thames.

The artifact graph

A schematic of artifacts and the operators between them. Each artifact is a node; each edge names the operator that made it.

Artifacts, assets and runs

Artifact

Immutable. An art_ id, a BLAKE3 digest, size and media type, and the run, node, partition and output port that committed it. Its digest is its identity across stores.

Asset

A logical object with versions, each pointing at artifacts. Defined in O-01 and not implemented yet.

Run

One execution: node instances, artifact edges, checkpoints, retries and events. The run is what makes an artifact explainable.

Content-addressed storage

artifacts/store.json  {"format":"zeus-artifact-store","format_version":1,"object_algorithm":"blake3","fanout":[2,2],"index":"redb"}
objects/blake3/00/f4/00f4e791631167aabc7c951e4df7b4fe88bc5c253efef2ef37d1bc32825e33a2
objects/blake3/04/74/0474f23641f77e2f6054af901e6005485fd1e2480b1bd27f476a4e833c452711
objects/blake3/05/e9/05e9911c8ce2e14519b49569c9f6010b65738e9530b4c9eb125f084e660084e1
objects/blake3/07/06/0706905f576ea69a5ee852e1adebfa82fe99281d0684eca708e60ed6fc42c51b
... 121 objects in all, one per distinct content

The store ogund creates on first start, captured 2026-10-26 with ogun 0.0.1-alpha on Windows 11.

  • The same bytes are stored once, however many runs produce them
  • Ingestion is temp file, fsync, atomic rename: crash-safe and idempotent
  • The format is the zeus-artifact library of zeus-core (Zeus spec 13), so a file Zeus acquired can be imported with its hash and provenance
  • Not built: chunk-level storage and content-defined chunking

Export formats

ExportWhat you get
OpenLineageRun, job and dataset events from the daemon (lineage.get, O-05) as JSON Lines, or posted to an endpoint you configure over plain HTTP; ogun-export can forward them
W3C PROV, CroissantPlanned, through the Zeus manifest exports; not built in Ogun

Read the design

The decisions and first-draft specifications are public, and the runtime is being tested. Feedback is most useful now, before the contracts are frozen.