Source-agnostic Delivery Intelligence platform implementing DORA metrics, telemetry normalization, and executive reporting.
flowchart LR
Telemetry["Telemetry Source (simulated)"] --> Normalizer["Event Normalizer"]
Normalizer --> Store[("SQLite Event Store")]
Store --> Dora["DORA Engine<br/>Pure Functions"]
Dora --> Reporting["Reporting Engine"]
Reporting --> Api["Fastify API"]
Api --> Dash["React Dashboard"]
/apps
/api
/dashboard
/packages
/event-model
/dora-engine
/reporting-engine
/storage-sqlite
/docs
architecture.md
dora-math.md
/docker
api.Dockerfile
dashboard.Dockerfile
docker-compose.yml
README.md
Canonical event model in packages/event-model/src/index.ts:
DeliveryEventTypecommitpr_mergeddeployment_starteddeployment_succeededdeployment_failedincident_openedincident_resolved
DeliveryEventid,type,timestamp,service, optionalenvironment,commitId,correlationId
SQLite table: delivery_events
id TEXT PRIMARY KEYtype TEXT NOT NULLtimestamp DATETIME NOT NULLservice TEXT NOT NULLenvironment TEXTcommitId TEXTcorrelationId TEXT- Index:
(type, timestamp)
GET /healthGET /metricsGET /metrics?window=7dGET /summaryPOST /seed
npm install
npm run dev:api
npm run dev:dashboardSeed simulated telemetry:
curl -X POST http://localhost:3000/seeddocker compose up --buildServices:
- API:
http://localhost:3000 - Dashboard:
http://localhost:5173
npm run testDORA pure-function tests are under packages/dora-engine/test.
- No persistence logic inside DORA computations.
- No HTTP logic inside metric math.
- Ingestion normalization is separate from storage.
- API orchestrates storage + engines only.
- Monorepo scaffold + base structure
- Canonical event model + SQLite storage
- Pure DORA engine + unit tests
- Reporting engine
- Fastify API
- React dashboard
- Docker support
- Documentation polish