AgeDigitalTwins is an SDK and API designed to support Digital Twins applications running on PostgreSQL with the Apache AGE extension. It supports DTDL (Digital Twins Definition Language) data models and allows for the validation of instances loaded in the graph database. The API and SDK are designed to make the transition from Azure Digital Twins easy.
- DTDL Support: Full support for DTDL data models.
- Graph Database: Utilizes PostgreSQL with the Apache AGE extension for graph database capabilities.
- Validation: Validate instances loaded in the graph database.
- Easy Transition: Designed to make the transition from Azure Digital Twins seamless (compatible with Azure Digital Twins APIs).
- MCP Protocol: Implements the Model Context Protocol (MCP) to provide context to LLMs.
- SDK:
- Digital Twins CRUD operations
- Models CRUD operations
- Relationships CRUD operations
- Model Validation with DTDLParser
- Twin Validation with DTDLParser
- Update Validation with DTDLParser
- Relationship Validation with DTDLParser
- ADT Query Conversion (to Cypher)
- WHERE
- MATCH
- JOIN
- IS_OF_MODEL
- String functions
- Type check functions
- Error handling
- ETags
- Pagination
- Components
- Telemetry
- Diagnostics and Prometheus metrics
- API:
- Digital Twins CRUD operations
- Models CRUD operations
- Relationships CRUD operations
- Error Handling
- ETags
- Authentication
- Authorization
- OpenTelemetry support
- MCP Server
- Models CRUD operations
- Digital Twins CRUD operations
- Relationships CRUD operations
- Authentication
- Deployment:
- Dockerize the API
- Helm chart for deployment
- Event routing:
- Logical replication connection with AgType parser
- Data History output (same format as Azure Digital Twins)
- Event Notification output
- Event Type Mappings
- Kafka sink
- Kusto sink (Azure Data Explorer / Fabric Real-Time)
- MQTT sink
Contributions are welcome!
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.