Is this a graph database? #48
Replies: 1 comment 1 reply
-
Hey Tom! Thanks for having a look! Let's start at the end... I created m-ld because it I was building a real-time collaborative whiteboard app in my spare time, and keeping everyone's whiteboard in sync was really hard. And also really interesting. So I looked into that more closely and got distracted from the whiteboard part 🙄. So m-ld didn't start out as a database at all. But the more I looked into it, the more I thought "this is like keeping database replicas in sync". And then, "wait a minute, what is a 'database' anyway?" But I won't elaborate on that yet because I'm writing an article about it... For now, let's say that m-ld is not a database, and definitely not in the sense of a 'server-based repository of truth'. Instead it's a portable thing that lives where the data is being used. It's like a combination of a local file or document, and the in-memory structured representation of that file's contents; like the 'Model' in MV[C|P]. Except, of course, it's shared, live, with others also operating on the same data (apparently by magic, but really using some computer science). For more about this concept, have a look at my article A Manifesto for Live & Sharable Data, or also the seminal article in this space, Local-first software. Fundamentally, m-ld handles data structures using a graph representation. It could have a Gremlin or SPARQL interface, if this is what consumers want. However the current interface is JSON so that it's easy to work with, in-process with the application code (most languages have an easy interface with JSON). So finally, the relationship with graph databases like Neo4J is a happy one. m-ld is a client-side data sharing component. In many systems there will also be a database, for storing final data and for cross-document queries. |
Beta Was this translation helpful? Give feedback.
-
Hi George,
Looks like an interesting project.
I'm curious, though, how this relates to graph databases like Neo4J or AWS Neptune?
Do you support Gremlin, or Sparql?
And... most importantly because there's too many projects out there... what makes m-ld different and why did you create it?
Thanks in advance,
Tom.
Beta Was this translation helpful? Give feedback.
All reactions