Skip to content

Implemented Durable Graph Database Providers ( golem:graph WIT interfaces) #40

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

Open
wants to merge 18 commits into
base: main
Choose a base branch
from

Conversation

harshtech123
Copy link

/claim #22
/closes #22

note : the testing is undergoing with maintainer reviews , this is initial and core version of golem:graph with solid foundation , thank you !

@harshtech123
Copy link
Author

harshtech123 commented Jun 17, 2025

#Maintainers this pr contains unit tests that are ignored when env variables are not set , this test are the MOTIVATION for our upcoming golem integeration tests ! we will refactor this soon .

@harshtech123
Copy link
Author

update : testing has been completed for integration , wasm component based testing is undergoing !

@harshtech123
Copy link
Author

Screencast.from.2025-06-23.23-10-12.webm

arangodb

  • you have to run arangodb local-Instance , example

sudo docker run -d --name arangodb -e ARANGO_NO_AUTH=1 -p 8529:8529 -v arangodb_data:/var/lib/arangodb3 -v arangodb_apps:/var/lib/arangodb3-apps arangodb

@harshtech123
Copy link
Author

Screencast.from.2025-06-24.16-16-07.webm

Janusgraph

  • you have to run janusgraph local instance to test this , example
  1. we have to specify the database (cassandra) in this case , since janusgraph doesnt store data by default

sudo docker run -d --name cassandra --network janus-net -p 9042:9042 cassandra:3.11

  1. we also needs to run janus-net before the above step

sudo docker network create janus-net

  1. lastly we need to run janusgraph by specifying the database , channalizer ( since it servers websocket by default in this case it is web and http both) , maybe timeout .

sudo docker run -d --name janusgraph --network janus-net -e storage.backend=cassandra -e storage.hostname=cassandra -e gremlinserver.channelizer=org.apache.tinkerpop.gremlin.server.channel.WsAndHttpChannelizer -e GREMLIN_OPTS="-Dtx.max-commit-time=60000 -Dstorage.cassandra.read-consistency-level=ONE -Dstorage.cassandra.write-consistency-level=ONE" -p 8182:8182 janusgraph/janusgraph:latest

@harshtech123
Copy link
Author

Screencast.from.2025-06-24.22-41-12.webm

Neo4j

  • we also have to run this locally , you can use official docker command for neo4j by default it runs on http , also needs auth 🔢
    docker run \ --publish=7474:7474 --publish=7687:7687 \ --volume=$HOME/neo4j/data:/data \ neo4j

@harshtech123
Copy link
Author

Tip : i also specified the env variables for local , in golem.yaml you have to just uncomment it which ever provider your running .

also this all three are well tested under the real instances at each level , using ureq .

@harshtech123
Copy link
Author

harshtech123 commented Jul 16, 2025

i think i need to refactor some part of code , to make it more simpler !

the problem is we cant use the gremlin client in this environment and i think i have to use proper serde to make it more robust , currently its in working state lets make it more robust .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Durable Graph Database Provider Components for golem:graph WIT Interface
1 participant