-
Notifications
You must be signed in to change notification settings - Fork 16
Design for moving the app graph to actual graph storage #97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📈 🚀
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will need to do another round of review for this doc.
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
Do we need to write all the resources to Kuzu too? Are we using Kuzu as the main data store now? |
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
architecture/2025-06-non-k8s-controlplane/2025-06-graph-db-replace-planes.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
…fic radius scenarios Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
…clearly, made migration tool a requirement. Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
…oing all data storage via graph today with multiple RPs writing to the same data store. Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
Signed-off-by: Sylvain Niles <sylvain.niles@gmail.com>
@@ -1,6 +1,6 @@ | |||
# Handling Non-Idempotent AWS Resources in UCP | |||
|
|||
**Note: This design doc has been ported over from an old design doc and might not match the template completely** | |||
**Note: This design doc has been ported over from an old design doc and might not match Note that here we are using the Radius resource group to construct the key of the tracking entry instead of the AWS `resourceID`. The deployment engine provides the resource group information from the deployment's resource group during the POST call that it makes to UCP to create/update the resource. This will associate the AWS resource with the Radius resource group, and thus allow the user to list AWS resources deployed within a Radius resource group.he template completely** | |||
|
|||
* **Author**: Vinaya Damle (vinayada) | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this doc was added by mistake?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes sorry I said that at the beginning of the meeting my copilot accidentally modified, will remove changes :)
|
||
### User Scenarios (optional) | ||
|
||
* **Scenario 1 (Developer):** A Radius developer needs to address performance issues for application graphs containing many resources. Retrieving all resources connected to a specific environment, which is a very expensive operation. Using Cypher through the GAL would be more expressive and orders of magnitude faster than multiple etcd calls and client-side filtering. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We would still take care to support only the read operations correct?
```bash | ||
rad resource inspect gateway api-gateway --show-dependencies --type secret | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--show-dependencies is awesome :)
4. **Schema Definition:** A formal schema for application graph entities (Applications, Environments, Resources as nodes) and their relationships (as edges with types and properties) will be defined and enforced in PostgreSQL + AGE. | ||
5. **Component Updates:** Radius components that currently perform application graph operations (traversals, relationship queries) will be updated to use the GAL for graph queries while maintaining existing functionality through current storage mechanisms during the transition period. | ||
|
||
**Architecture Rationale:** PostgreSQL with Apache AGE provides a strategic foundation that can serve both immediate graph database needs and future storage consolidation. Unlike embedded solutions, a containerized PostgreSQL deployment offers: (1) Production-ready operational patterns familiar to most teams; (2) Native support for both relational and graph data models; (3) Established ecosystem of monitoring, backup, and scaling tools; (4) The flexibility to migrate additional Radius storage needs to the same technology stack over time, reducing operational complexity. **Note: This proposal is scoped specifically to graph operations via the GAL. Future work would involve migrating key-value operations from etcd to PostgreSQL and renaming the GAL to DAL (Data Access Layer) to reflect its expanded role as the unified data access interface for all Radius storage operations.** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: This proposal is scoped specifically to graph operations via the GAL. Future work would involve migrating key-value operations from etcd to PostgreSQL and renaming the GAL to DAL (Data Access Layer) to reflect its expanded role as the unified data access interface for all Radius storage operations.
Will data be duplicated across both etcd and the graph database in the meantime?
This design adds a new component to Radius, the graph abstraction layer, and allows for app graph functionality to leverage the performance and simplicity of a graph db rather than the imperative graph traversal logic currently implemented in CoreRP.