Hey Peter, thanks for your response. I recall reading in the Graph for
Scala documentation that you envision integration with persistence
libraries. That is partly what has inspired me to consider trying this out.
There are several reasons why I'm more interested in Datomic than Neo4j,
both of which I have played around with. The most compelling and unique
feature of Datomic is the built-in history. It never deletes data, so you
can make queries against the past, queries over deltas of time, etc. I can
imagine lots of useful applications of this powerful capability.
The second reason is that Datomic embraces the functional paradigm by
making all data immutable (hence the keeping of all data). I believe it
makes Datomic a better fit for Scala persistence.
While I find the Neo4J concept very intriguing, I think the two reasons I
just gave are compelling enough for me to prefer Datomic. Rather than
thinking of a graph as the fundamental relationship as in Neo4J, I would
make a graph another data structure that can be used, like a list is.
(Just to drive the point further home, we could likewise think of every
field of an object as a list, but with size == 1 as a special case) Since
Datomic supports recursive querying, it should be a good fit for Graph for
Finally, I think a little background on me will be helpful too. I'm a
seasoned Java developer as I previously mentioned. I've done a lot of work
in Hibernate, so ORM has certainly poisoned my thoughts on persistence. :)
Scala and functional programming is a very recent discovery for me. I
consider myself more of a lazy math geek that found out that computers will
do the hard work for me. I took graduate math courses in graph theory
while earning my Master's in CS. I would like to develop this Datomic
capability for me to use at my current employer. We're in the telecom
industry, and I need a robust way to store and reason about network graphs.
Because Datomic isn't free, there's still a chance I'll have to fall back
to Neo4J in the end.
On Saturday, 17 November 2012 03:52:11 UTC-6, Sonnenschein wrote:
this is great news. I don't think anybody has tried this.
Scala users have been expressing their need for making Graph4Scala capable
of reflecting graphs stored in graph databases such as Neo4J but, I regret,
I didn't find time to implement such extensions and so far nobody has
teamed up with me. What I've already managed is a kind of preparation for
such extensions: whenever you instantiate a Graph there is a seamless
capability to provide configuration data. This is essetially the similar to
the recent extension of parallel collections.
Could you tell us more about why you think Datomic persistence, which is
afaics object-based, as opposite to graph-based, is still suited for a