3 ms·
I'm currently on my first project involving a graph database . Dgraph coincidentally, and I somewhat like the product. But this is a horrible article that woul
by the_duke 6y ago
I'm currently on my first project involving a graph database . Dgraph coincidentally, and I somewhat like the product.
But this is a horrible article that would immediately leave a bad taste in my mouth if I were researching the product.
It boils down to a shallow dismissal of relational databases that does not have much more substance than "Relational dbs are old and bad! Graphs are awesome because relations and queries!".
Graph databases are often immature, don't enforce schemas, have little tooling, poorly understood or hard to tune performance characteristics, are somewhat messy when it comes to query languages (OpenCipher? weird GraphQL dialect? homegrown solution X?). The list goes on.
A colleague who is an expert in this domain recommended to use (current) graph DBs only if you care more about the are relationships than the data. And probably only for data that you can lose, eg as a secondary storage.
Criticizing the relative awkwardness of relations in relational DBs is valid, and has both historical and practical reasons.
But the author wrote it himself: relational DBs are the first choice for developers. Not by accident, or because the internet told me to. But because they are excellent, mature, well understood, versatile products that can handle most of a regular applications requirements very well.
No, you should not throw away every database and write all your future applications with DGraph. You may investigate if a graph database fits your specific use case, if the product is mature enough to rely on it, and if the added complexity (from devs to ops) is worth it.
Vendors should promote the strength of their products, but also be clear about when it might not be a good fit.
This kind of writing does not inspire trust in the quality of DGraph, rather the opposite.
- madrox 6y agoI'm pleased to hear so many comments saying this. I don't think this style of writing is appropriate for engineering. This is computer science, and even in marketing posts like this one we should be reading analysis of performance benchmarks along with pros and cons. I'm immediately skeptical of technology that takes this marketing approach.
- it 6y agoHe did show concrete examples of how relational DBMSs force you to model and query in an unintuitive way.
- LukeEF 6y agoIt the section where you criticize graph is unfair. 1. All databases can be immature. 2. There is a whole world of graph DBs where strong schema support is the cornerstone of the system (TerminusDB, Stardog etc.). 3. Some relational Dbs have little tooling - Neo4j, as the oldest and most successful graph, has way more tooling than johnny newcomer RDBMS 4. performance characteristics are hard. That is not a necessary feature of graph. 5. Query languages - so you are saying only SQL will do? Lots of graph DBs use datalog or a variant (Datomic, TerminusDB, Opencrux). It is a well understood, powerful and composable approach to query. Yes, some query languages have flaws, but we should be open to doing better on query. SQL fundamentalism is wrong.