Shared models and exported schemas establish one vocabulary for landing work, clients, and downstream services.
Sends to
- Defines extraction payloads
- Defines API contracts
Distributed health-data platform
A contract-led platform for moving municipal source extracts from edge environments into a tenant-isolated central data layer.
01 / Context
Municipal source systems produce operational data at the edge, while reconciliation and downstream analysis need stable contracts, source provenance, and an explicit boundary between tenants.
CnesData is developed as a public software platform. The repository demonstrates the application boundaries and local development path; this case study does not claim a municipal rollout, production scale, or processing results.
02 / System boundaries
Conceptual architecture map for public discussion. Connections describe system responsibilities rather than a live deployment; processing and deployment boundaries remain illustrative.
Central API is the branching hub between contracts, clients, and downstream boundaries.
Shared models and exported schemas establish one vocabulary for landing work, clients, and downstream services.
Edge extraction writes compressed Parquet artifacts and registers multi-file manifests with the central platform.
A FastAPI service coordinates activation, extraction requests, manifest registration, and landing metadata.
Tenant context is carried through authorization and PostgreSQL row-level security boundaries.
The typed dashboard presents activation, agent state, access, and overview workflows.
Worker foundations exist, but the full landing-to-Gold processing path is not presented as complete.
Kubernetes is a target deployment shape rather than a published production claim.
03 / Interactive scenario
Synthetic demonstration · Illustrative
An illustrative raw-object contract using fictional identifiers and content. It does not represent the full current CnesData API or measured operational results.
No backend calls, mTLS authentication, DBC conversion, Parquet generation or real health data. Steps do not measure latency. These results are separate from the conceptual architecture map above.
Interactive controls require JavaScript. All three complete transcripts are available below.
0 of 1 attempts · ready
No attempts yet.
Every step is rendered with the page and stays available without JavaScript.
Synthetic demonstration · Illustrative. Initial state: no stored objects.
Stored synthetic-content-A at synthetic-key-K. One object exists.
Result: stored. Stored objects: 1.
synthetic-key-K → synthetic-content-ASynthetic demonstration · Illustrative. Initial state: no stored objects.
Stored synthetic-content-A at synthetic-key-K. One object exists.
Result: stored. Stored objects: 1.
synthetic-key-K → synthetic-content-AAccepted identical replay of synthetic-content-A at synthetic-key-K. The stored object is unchanged; no duplicate was created.
Result: replayed. Stored objects: 1.
synthetic-key-K → synthetic-content-ASynthetic demonstration · Illustrative. Initial state: no stored objects.
Stored synthetic-content-A at synthetic-key-K. One object exists.
Result: stored. Stored objects: 1.
synthetic-key-K → synthetic-content-ARejected conflicting synthetic-content-B at synthetic-key-K. The originally stored content remains intact.
Result: conflict. Stored objects: 1.
synthetic-key-K → synthetic-content-A04 / Technical choices
05 / Outcomes
06 / Public record
Source code, contracts, application boundaries, tests, and current-status documentation.
Open public evidence ↗Public system model and service-boundary reference.
Open public evidence ↗