Function Version Graph
Relay maintains an append-only version ledger for every function (RUFID). Each publish appends a ledger entry with semantic tags (v1, v2, ...), branch pointers, diff metadata, and manifest snapshots.
Data Model
function_version_ledger: append-only entries withversion_tag,branch,author_id, diff metadata, and manifest snapshot.function_branch_heads: current head per branch (mainby default).
CLI Commands (preview)
relay functions history <rufid>— list versions and metadata.relay functions diff <rufid> --from v1 --to v2— show diff metadata.relay functions branch <rufid> new-branch— create branch (future work).relay functions rollback <rufid> --to v1— move branch head back (future work).
API Endpoints (upcoming)
GET /functions/{rufid}/versionsGET /functions/{rufid}/versions/{tag}
Audit & Observability
- Ledger emits
version.createdevents for auditing. - Metrics:
relay.version.append_total,relay.version.rollback_total(to be surfaced in Datadog).
Related Work
- FN-102 branch-aware execution depends on branch heads from this ledger.
- FN-103 dependency manifests store snapshots alongside ledger entries.
Stay tuned for CLI and console UX updates that expose the full version graph experience.