Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/konnektr-io/pg-age-digitaltwins
AGE Digital Twins allows to use Postgres with the Apache AGE extension as a backend for Digital Twins solutions using DTDL.
https://github.com/konnektr-io/pg-age-digitaltwins
apache-age c-sharp database digitaltwins dotnet dtdl graph iot npgsql postgres postgresql
Last synced: about 1 month ago
JSON representation
AGE Digital Twins allows to use Postgres with the Apache AGE extension as a backend for Digital Twins solutions using DTDL.
- Host: GitHub
- URL: https://github.com/konnektr-io/pg-age-digitaltwins
- Owner: konnektr-io
- License: apache-2.0
- Created: 2024-10-22T08:02:10.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-03T10:28:40.000Z (about 1 month ago)
- Last Synced: 2024-12-03T11:29:05.552Z (about 1 month ago)
- Topics: apache-age, c-sharp, database, digitaltwins, dotnet, dtdl, graph, iot, npgsql, postgres, postgresql
- Language: C#
- Homepage:
- Size: 193 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AgeDigitalTwins
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.
## Features
- **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.## Roadmap
- **SDK**:
- [x] Digital Twins CRUD operations
- [x] Models CRUD operations
- [x] Relationships CRUD operations
- [x] Model Validation with DTDLParser
- [x] Twin Validation with DTDLParser
- [x] ADT Query Conversion (to Cypher)
- [x] WHERE
- [x] MATCH
- [x] JOIN
- [ ] Custom functions
- [x] Error handling
- [x] ETags
- [ ] Pagination
- [ ] Components
- [ ] Telemetry
- [ ] RBAC with user impersonation (same principle as in [Postgrest](https://docs.postgrest.org/en/v12/references/auth.html))
- **API**:
- [x] Digital Twins CRUD operations
- [x] Models CRUD operations
- [x] Relationships CRUD operations
- [x] Error Handling
- [x] ETags
- [ ] Authentication
- **Deployment**:
- [x] Dockerize the API
- [ ] Helm chart for deployment
- **Event routing**: see [link](https://event-driven.io/en/push_based_outbox_pattern_with_postgres_logical_replication/?utm_source=github_outbox_cdc) and [link](https://www.npgsql.org/doc/replication.html)
- [ ] CDC connection with AgType parser (either in C# or leverage Debezium)
- [ ] Data History output (same format as Azure Digital Twins)
- [ ] CloudEvents output
- [ ] Kafka route
- [ ] ADX/Fabric Real-time route
- [ ] MQTT route (IoT Operations)## Contributing
Contributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) for more information.
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
## Acknowledgements
- [Apache AGE](https://age.apache.org/)
- [Apache AGE C# client](https://github.com/Allison-E/pg-age)
- [Azure Digital Twins](https://azure.microsoft.com/en-us/services/digital-twins/)