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.
- SDK:
- Digital Twins CRUD operations
- Models CRUD operations
- Relationships CRUD operations
- Model Validation with DTDLParser
- Twin 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
- Authentication
- Authorization: RBAC with user impersonation (same principle as in Postgrest)
- API:
- Digital Twins CRUD operations
- Models CRUD operations
- Relationships CRUD operations
- Error Handling
- ETags
- 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
- Kafka sink
- Kusto sink (Azure Data Explorer / Fabric Real-Time)
- MQTT sink
- Monitoring:
- Distributed tracing
Contributions are welcome! Please read our contributing guidelines for more information.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.