Skip to main content

Analytics Stack Blueprint

This example shows how a single product feature flows through multiple protocols.

Scenario

  • Event Streamuser-signups published from the identity API.
  • Data Setuser_signups_daily derived in the lakehouse.
  • APIgrowth-metrics exposes 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.