Skip to content

AGE Digital Twins allows to use Postgres with the Apache AGE extension as a backend for Digital Twins solutions using DTDL.

License

Notifications You must be signed in to change notification settings

konnektr-io/pg-age-digitaltwins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:
    • 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

Contributing

Contributions are welcome! Please read our contributing guidelines for more information.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Acknowledgements