Plexus.Provenance (Plexus v0.1.0)

Copy Markdown View Source

Epoch/staleness invalidation over typed :depends_on edges.

Summary

Functions

depend(run_id, derived_id, upstream_id, provenance \\ nil)

@spec depend(term(), term(), term(), term()) :: :ok

invalidate(run_id, upstream_id, opts \\ [])

@spec invalidate(term(), term(), keyword()) :: [term()]

next_repair(run_id)

@spec next_repair(term()) :: {:ok, map()} | :empty

Take the highest-priority pending repair. Complete using repair/3 with its epoch.

repair(run_id, actor_id, expected_epoch \\ nil)

@spec repair(term(), term(), non_neg_integer() | nil) :: :ok | {:error, term()}