-
I'm looking at various developer friendly ways to model features like
this is typically done with graph databases, which are a bit overkill. So for me is the question: Can EdgeDB as Graph Relational Database be really used for graphs? Since, at the end of the day, it's "just" Postgres SQL under the hood 👀 the reason for this question is sparked by this issue mentioned in the cascading deletes section. It would be nice to have an idiomatic schema model like EdgeDB implements. I just worry that devs would go crazy on its capabilities (linking) and suddenly hit the ceiling due to the underlying rational database. Effectively:
Thank you for providing your feedback. Also happy to take any coin tosses on other tech / ideas. Other things I am looking at: Dgraph (but they seem to be really wonky on open source, weird feeling about them), using Red Panda (like kafka) event sourcing with MemGraph (kinda talent overkill), going traditional with prisma + extra tech, or turning away from open source and going for something like CosmosDB + tinkerGraph (also talent overkill, gremlin graph language) |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 7 replies
-
I hope someone answer this question properly. I am curious as well. DGraph is dead unfortunately. |
Beta Was this translation helpful? Give feedback.
-
@elprans would you mind chipping in on my question? Seriously evaluating EdgeDB. Thank you very very much! |
Beta Was this translation helpful? Give feedback.
-
Did you evaluated ArangoDB? Rock solid document/graph/kv db based on Rocksdb and their query language is very similar to edgeql |
Beta Was this translation helpful? Give feedback.
-
After almost 4 months I‘d like to bump my OP question again: What are the limitations of using EdgeDB as a GraphDB? Thank you. |
Beta Was this translation helpful? Give feedback.
-
Bumping this, because I really want to know the answer as well. |
Beta Was this translation helpful? Give feedback.
-
You could create a For now, you would have to insert these changes via your application, but the upcoming triggers feature will allow you to do it on the database.
The approach described above would also address this.
For a given object, you could traverse its changes:
or you could look at changes and see which objects they apply to:
Deletion policies can handle this for you.
Given this schema:
This tells you if the two are directly connected:
To determine connectedness of arbitrary distance, you'd need recursion which we don't currently support but is on our radar. This might be a part of 4.0, but we haven't firmed up the featureset for that version yet.
Can you clarify your question here?
I hope this helps, @D1no. Let me know if there's something I've missed or misunderstood. |
Beta Was this translation helpful? Give feedback.
You could create a
Change
type to hold whatever audit data you need — probably a timestamp and a link to an author, at minimum. Then each of your other types could have amulti link
changes
that could link to each of its changes. This could be implemented on an abstract type (perhapsAuditable
) with achanges
link that could be extended by all the types you want to be able to audit.For now, you would have to insert these changes via your application, but the upcoming triggers feature will allow you to do it on the database.
The approach described above would also address this.
For a given object, you could traverse its changes: