artimath
Who’s using graph databases today?
I think I’ve tried 5 different graph database libraries in the last two days and not a single one has been able to connect to a remote/local db. All sorts of wonderful errors, db connection genservers crashing on MatchErrors, library only supports version 4.2 of db and the only ones offered now are 5+, etc.
Perhaps it’s because I’m using 1.14.5/otp26, but it seems more that many of these libraries are just no longer actively maintained.
Perhaps it’s a sign from the Ecto gods that I shouldn’t use a graph db in my project.
Anyway, is anyone actively using elixir with graph databases? If so, what’s your stack?
Side note: attempting to debug and troubleshoot said errors has taught me a significant amount of valuable insights into how elixir, mix, libraries, config all work together… so that is a big plus! Also, why it’s important for a library to include tests ![]()
Most Liked
krstfk
I’m currently working on a new driver for neo4j that will support v 5+. I’m still ironing out a few things but I hope I’ll be able to release it by the end of June or so.
In the mean time neo4j v 3 and v 4 can still be downloaded. If you don’t use the commercial version, the feature set is rather stable.
sagastume
Hello! I’ve been working on a fork of Bolt Sips for the past 3 months. You can find the project at:
https://github.com/sagastume/boltx
It provides support for the latest versions of Neo4j and Bolt. Personally, I’ve been conducting tests with Neo4j Aura.
During this period, I made numerous changes to Bolt Sips, including refactoring PackStream, protocol, socket, and more. The idea behind these changes is to make the implementation as simple as possible, making it easy to adapt to future modifications.
Feel free to try it out and let me know if everything is working smoothly ![]()
Compatibility with Neo4j versions: 3.0.x/3.1.x/3.2.x/3.4.x/3.5.x/4.x/5.9 - 5.13.0
Compatibility with Bolt versions: 1.0/2.0/3.0/4.x/5.0/5.1/5.2/5.3/5.4
bgoosman
I’ve added precompiled versions of kuzu_nif, so you can use KuzuDB without installing a Rust compiler on your computer. Attempt at adapting KuzuDB's Rust crate into Elixir via NIF, any tips/thoughts? - #19 by bgoosman. The advantage of KuzuDB is no server required. It’s all embedded.
krstfk
The thing is that there’s an impedance mismatch between Ecto and graph databases. I believe Dominique Vassard has done some work to provide an ecto like interface on top of bolt_sips but I’m not convinced it may work as is. I believe he also has done some work taking inspiration from ecto.
That being said, one of the things that needs ironing out on my side is providing a repo construct (which is harder than initially thought because clustering is very much a necessity for a driver for neo4j).
By the way Florin Patrescu has stated a while back that he was not able to maintain bolt_sips anymore. And I would like to make it very clear that I have not started a new project because of any issues I had with bolt_sips or any of its maintainers. The thing is when bolt_sips started (and even a couple of years ago), the bolt protocol was poorly documented and now the situation is much different which may lead to radically different design decisions and incompatibilities, which is why I have opted to work on a new driver (hopefully released by the end of June) that will definitely owe a lot to Florin Patrescu and all of the bolt_sips contributors.
TomGrozev
The Arango database is really good and I’d recommend you check it out. Shameless plug I made the ArangoDB adapter for Ecto: GitHub - TomGrozev/arangox_ecto: An ArangoDB Ecto adapter using ArangoX
It has full graphing support and works really well with Ecto. In the next release ArangoSearch functions will also be available.







