Analytics Stack Blueprint
This example shows how a single product feature flows through multiple protocols.
Scenario
- Event Stream –
user-signupspublished from the identity API. - Data Set –
user_signups_dailyderived in the lakehouse. - API –
growth-metricsexposes the aggregated data to dashboards.
Manifests
events/user-signups.json
{ "protocol": "event", "channel": { "name": "user-signups" }, "schema": { "fields": { "user_id": { "type": "string", "required": true } } } }
datasets/user_signups_daily.json
{ "protocol": "data", "dataset": { "name": "user_signups_daily" }, "lineage": { "sources": [{ "type": "event", "id": "user-signups" }] } }
apis/growth-metrics.json
{ "protocol": "api", "service": { "name": "growth-metrics" }, "lineage": { "sources": [{ "type": "dataset", "id": "user_signups_daily" }] } }
Validating Relationships
const event = createEventProtocol(eventManifest);
const dataset = createDataProtocol(datasetManifest);
const api = createApiProtocol(apiManifest);
const catalog = createDataCatalog([dataset]);
const hasPIIEgress = catalog.piiEgressWarnings();
Use the CLI graph command to emit a system diagram. Because URNs are consistent, the graph includes cross-protocol edges without extra metadata.