Konnektr Graph
Semantic graph engine for PostgreSQL with Apache AGE — DTDL models, Cypher queries, and an Azure Digital Twins-compatible API. Self-hosted.
Konnektr Graph is a semantic graph engine for PostgreSQL, built on the Apache AGE extension. It stores DTDL-modelled entities as graph vertices, answers Cypher queries natively, and exposes an HTTP API that is compatible with Azure Digital Twins — so existing ADT SDKs, query strings and payloads keep working.
It is self-hosted: you run it in your own cluster, against your own PostgreSQL.
Why Konnektr Graph
- Azure Digital Twins compatible — the same API surface, the same DTDL models, the same
$dtId/$metadata.$modelpayloads, and the sameSELECT … FROM DIGITALTWINSquery dialect. Existing .NET, Python, JavaScript and Java ADT clients connect unchanged. - A graph, not a document store — twins and relationships live as vertices and edges in PostgreSQL, so traversals are Cypher, not application-side joins.
- One database to run — no separate graph server. Apache AGE runs inside PostgreSQL, alongside your relational data, with normal backups, replication and tooling.
- Change streams you own — twin state changes are published to Kafka, Azure Data Explorer or MQTT through configurable event sinks and routes.
- DTDL end to end — model upload, inheritance, interfaces, components, telemetry schemas and validation are all driven by the DTDL documents you already have.
What "compatible" means in practice
| Surface | Behaviour |
|---|---|
| Twin & relationship CRUD | Azure Digital Twins REST shapes (/digitaltwins/{id}, relationships, components) |
| Query | ADT SQL-like dialect translated to Cypher (/query) |
| Models | DTDL v2/v3 upload, decommission, dependency-aware delete |
| Payloads | $dtId, $metadata.$model, $lastUpdateTime; opt-in $lastUpdatedBy |
| SDKs | Any client that speaks to Azure Digital Twins over HTTP |
The ADT-specific behaviour is a compatibility profile over the same graph — it is not a separate product. Where Konnektr Graph extends beyond ADT (native SDK, direct database access, scoped vector memory search), the additions are documented separately and are opt-in.
Where to start
- Quickstart — a running graph, a model and your first twin in one sitting.
- Self-hosted deployment — Helm chart, values, authentication and scaling.
- Concepts — DTDL, querying, validation, event routing.
- Using the Azure Digital Twins SDKs — point an existing ADT client at your own instance.
Resources
- Source code
- Issues
- Discussions
- License: Apache 2.0