Skip to content

Memgraph

TL;DR

Performant, excellent documentation, easy to deploy, Neo4j compatible (both queries & client drivers) & even supports custom functions with Python, along with C/C++ & Rust!

Getting Started

Fire up console: curl -sSf "https://install.memgraph.com" | sh

Things can screw up...

  • in my case port 3000 was in use, web UI frontend won't start
  • Bring it down with docker-compose down within the ~/memgraph-platform
  • Edit docker-compose.yml, change 3000:3000 to 3030:3000 or whatever not used
  • Run docker-compose up -d, everything should work

Well Designed Onboarding Experience

I have tinkered with Neo4J, OrientDB, FalkorDB, DGraph... but I like this the most so far because...

Conforms to good UX principles from Prof Shneiderman's Visual Information Seeking Mantra:

Overview (first) > Zoom & Filter > Details on demand

In this case, it didn't just load some arbitrary data & leave the user clueless. You can see basic schema of this data-set (top) & overview of the data-set:

Providing a set of queries for exploration (Details on Demand):

UI actually warns about the large returned data-set & asked if we want to proceed! Nice!

For those into more advanced stuff: https://memgraph.com/docs/advanced-algorithms/available-algorithms/node2vec

Improving Deployment Experience

  • Avoid hard-coding port values within docker-compose.yml.
  • Deployment scripting should check for port availability especially for frontend since every other frontend love 3000!
  • Script will then pick available port, write into a .env & docker-compose.yml reference environment variable.
  • Of course once container started, SHOW the frontend URL & further instructions clearly!