High performance, Local, single node, embedded graph db, accessed via library only within a single node


#1

I am looking to file a requirement for a local graph database for build system like, say make, to use to store build dependency graphs.
I expect, prefer the DB to be accessed preferably via local library instead of any client server architecture.
Expect the graph data to be populated over a span of a very large build as the build pogresses.
But I also expect graph queries to be blazing fast.

So Cayleygraph is what I found to be closest, since it has a direct golag library that I ca use to access the database.

Questions:
1. Is Cayleygraph the right choice for this use case? Is there any others i should be considering?
2. What backend is best suited fo this? Bolt?


#2

Hi @sarvi,
We have been using Cayley as an embedded db to collect real-time provisioning, and deployment related information on our applications directly from the cloud providers’ APIs and from the Kubernetes API. It handles a quite complex graph, and makes the querying very efficient and relatively easy. We use react components to visualize the results, and the conversion of the query results is also straightforward.
We use the in-memory db for it, but Bolt is also can by a trivial choice for your problem, in my opinion.
Currently we built this solution into a simple web server to feed a Grafana data source plugin for visualization of the results, but it is also easy to put all the stuff into a single binary combining the DB, the processing logic, and the frontend using https://wails.app/.
You may also find useful my cookbook on Cayley: https://tombenke.github.io/cayley-cookbook/.