Streaming Video Encoding & Packaging Pipeline · View 12 of 22 · Data
recipe_digest is the join key
- A digest over source version, encoder build and parameters. Every rendition, score, segment and job hangs off it.
- Delete every rendition row and the lineage still resolves: you can still say what produced a byte that no longer exists, and regenerate it.
- It is also the identity decision in Question 4 — content hash versus assigned id — written into the schema, where the consequence is visible.
What is deliberately not a foreign key
- content_key carries a key_id and never key material. Segments reference the key id; the key itself lives only in the external key service.
- manifest to segment is N:M because one segment set serves every device-class manifest and every DRM system — that is what common encryption buys.
Omitted here
- The audit log keys off the same digests and is left off the view to keep the lineage chain readable. It is in view 11 and view 18.
- Lane accounting and quota tables are operational, not lineage, and are omitted for the same reason.