17 ms·
Neo4j nabs $80M Series E as graph database tech flourishes
- ixf 8y agoThe frustrating thing with Neo4j is that they have two modes - a fairly neutered open source version, and a ~$35k/node enterprise version, with absolutely nothing inbetween. They're apparently doing a cloudy hosted enterprise version somewhere inbetween but that's some time out and not a self-hostable option.
- emileifrem 8y agoI hear you. We're working on it. I will note that we have a startup program where you can get Neo4j Enterprise for free if you're below 50 employees and also have several other programs for educational institutions, journalists, etc. And obviously the long term solution here is a DBaaS with grow-as-you-grow pricing. Watch this space! :)
- JanSt 8y agoThere are a ton of use cases in bigger enterprises (1000+ employees) for smaller applications that are not worth the costs you are offering currently, so I'm glad you're working on it. Cypher is amazing (as is most of Neo4j). I've used Neo4j for many years, going back to pre 2.0 versions. The database has evolved massively since then.
- deforciant 8y agoyeah, my experience was the same. It's a really nice database to play with or for a small project but if you need a multi-node HA cluster, the price quickly becomes prohibitive. I guess if I ever need a graph database again I will probably go for dgraph (although I haven't used it in any production environment) - https://dgraph.io https://dgraph.io or any other graph database that at least has HA setup without 100k/year bill :)
- moxious 8y agoIf you want to self-host Neo4j in cloud environments, that's doable today in a variety of different ways: https://neo4j.com/developer/guide-cloud-deployment/ https://neo4j.com/developer/guide-cloud-deployment/ As others pointed out in other threads, this can be done for free for startups of a certain size (https://neo4j.com/startup-program/ https://neo4j.com/startup-program/), and eval licenses are available (https://neo4j.com/lp/enterprise-cloud/?utm_content=aws-marketplace https://neo4j.com/lp/enterprise-cloud/?utm_content=aws-marke...)
- joeskyyy 8y agoAll of this. It's impossible to run Neo4j out of the box in HA in a sane way. Not to mention, you can't even run a reliable backup of the datastore without shutting down the database entirely... unless you pay for their archaic pricing model for enterprise.
- hardwaresofton 8y agoNeo4J has been around so long -- is anyone here using it in production and really happy with it, where it's like really crushing a use-case? I feel like 90% of the applications in existence can go so far with a regular RDBMS that they never try out Neo4j... I know that's the case with me. Half the time I think I'd just try throwing Agensgraph[0] at the problem instead of jumping to the community version of Neo4J. [0]: https://github.com/bitnine-oss/agensgraph https://github.com/bitnine-oss/agensgraph
- latchkey 8y agoI used it heavily in production in 2013, for a dating site. I'm sure it has gotten better since then (or at least I hope so). At the time, it was really just a single node. The issue with graph databases where RDBMS doesn't scale is that the graph can grow quite quickly. I've kept a loose eye on the space since then and I think there is quite a few competitors.
- philjohn 8y agoThis. It's the reason why the heavy hitting products in this space (MarkLogic, OpenLink Virtuoso, AllegroGraph) are all scale out products. A graph can get HUGE very easily.
- emileifrem 8y agoIndeed, and Neo4j has scaled out horizontally for reads since 2011. However, the really hard problem with scaling graphs is scaling writes, i.e. partitioning. In my mind, no one has solved that well today because you can't just slap it on top of a partitioning algorithm that's designed for data without explicit relationships (think documents, key value pairs). In order to gain something other than a checkbox feature and "sharding claims" you have to partition based on the shape of the graph at the time of insertion, but also revise it continuously as the graph evolves over time. That's a non-trivial problem that no one has solved today. (Yes, we're obviously working on it here at Neo4j.) The good news is that you can get really really far with the replicated horizontal scale out model. "Big RAM is growing faster than big data" as you've probably heard and today there are massive Neo4j deployments in production using our third generation scale out architecture (Raft based, multi clustering, causal consistency).
- mark_l_watson 8y agoI have only used Neo4j for one customer project, but I experiment with it myself (I also use RDF datastores) and have used Neo4j in examples for two books I wrote. Good technology, and I am glad they are successfully transitioning from the open source community version to also making money with their enterprise version. It is still a research thing, but I am starting to see occasional papers on inducing relations in graphs using deep learning. If this proves useful, that should help the growth of graph databases and the use of knowledge graphs. However, as another commenter ‘hardwarsofton’ said, just using Postgres is very often all I need.
- threeseed 8y agoRDBMS is always going to be the default database that works for 90% of use cases. But Neo4J (graph), Cassandra (wide), MongoDB (document) etc aren't addressing the common use cases. It's all about the more complex and exotic data models.
- topicseed 8y agoArangoDB does them all rather well.
- emileifrem 8y agoHey Mark. Yours was the first ever book on AI that I read back in the 90s so thank you for that. :) I think we're in the early parts of an exciting journey connecting (no pun intended) graphs and AI. I'm personally really excited about connected feature extraction. I wrote a little bit about it here: https://neo4j.com/emil/80-million-series-e/ https://neo4j.com/emil/80-million-series-e/ There's more in depth info here in this graphs & AI overview video from GraphConnect last month: https://neo4j.com/graphconnect-2018/session-topics/?topic=AI%20and%20Machine%20Learning https://neo4j.com/graphconnect-2018/session-topics/?topic=AI...
- mark_l_watson 8y agoThanks!
- serialdev 8y agoI'm curious if any of you have tried it against another commercial graph db like AllegroGraph?
- ChicagoDave 8y agoHuge fan of Neo4j and there are many data stores that would benefit from a graph, security data being one. And Cypher is a fantastic query language for graphs and should be the standard.
- maximveksler 8y agoHas anyone used stuff like ontotext graphdb or stardog? I'm also interested in peopels opinions of Neptune in that domain. Mostly for medical reasoning on RDF OWL ontologies such as "Ontology Development and Debugging in Protégé using the OntoDebug Plugin"[1] [1] https://www.youtube.com/watch?v=vHmC-rRuMYM https://www.youtube.com/watch?v=vHmC-rRuMYM
- drej 8y agoI had a toy project which housed all its data in Postgres and I needed a bit of graph traversal, really basic stuff. I almost prepared some ETL to load the data into neo4j/redisgraph, but then I found out about recursive CTEs in Postgres. Granted, they won't let you do nearly as much as some advanced graph algorithms, but the ease with which you can use it in your operational data store is amazing. And with proper indexing, I could do a traversal in hundreds of milliseconds. https://www.postgresql.org/docs/current/static/queries-with.html https://www.postgresql.org/docs/current/static/queries-with....
- moxious 8y agoMany of us who have worked in the graph database space have been tempted to use the graph abstractions on top of a relational database. It's a reasonable first step. Tables are nodes, join tables are relationships and so forth. It's also however a bit of a dead end once you go beyond the basics. The costs of joins get worse the deeper you go, and "hundreds of milliseconds" is at least an order of magnitude slower than what Neo4j would do for you. Once you take that major performance penalty, and then layer it into more complex graph algorithms or analytics, it gets really, really painful quickly. Granted, you might not notice this if you never needed to go further than 2-3 hops in a graph. But once you start working with graphs you're not going to want to stick to such basics. More technical detail on the difference between a graph abstraction on top of another database, and a native graph database, can be found here: https://neo4j.com/blog/note-native-graph-databases/ https://neo4j.com/blog/note-native-graph-databases/
- segmondy 8y agoWell, of course it would be expensive to use tables as an arc. So say A points to B you have 3 tables right? Table 1 for A, Table(2) for B and a join table (3) showing that A points to B right? Why would you do that? What's stopping you from having one table that contains A and what A points to? So you only have 2 tables? What if you have a node that can point to many items, a column can contain a list in postgres, so we can still have one Table containing your node data and a list of items they point to. I'll concede that graph databases are easier to write query for, most people already struggle with basic SQL, let alone CTE and recursive CTE. I'm yet to be convinced that a problem can't be reshaped and mapped on a traditional RDMS and yet remain performant.
- fulafel 8y agoDoes anyone have experience with both Datomic and Neo4j? Are they comparable?
- dikbrouwer 8y agoI do, but only in smaller side projects and I'd love to hear from someone who has experience with both in larger settings. Although they work very differently, the query language (Cypher vs. Datalog) have a very similar feel to them. When I tried them it seemed that Datomic would be the more flexible of the 2 (eg. for use cases where you'd want a bit of relational and a bit of graph support), and that Neo4j you'd end up with PostgreSQL next to Neo4j in many practical applications. I have to say though that the query/visualization UI that Neo4j provides is nice and helps with making sure your data is indeed stored in the way you want.
- motohagiography 8y agoI've been using Neo in production on GrapheneDB with py2neo and Flask for about a year. Love it. The reason I use a graph is for consistency from my product level business logic to my implementation. Basically, to solve my problem, I started with a set of english statements, which yielded a grammar, that I described as "objects and morphisms," (things and relationships) then implemented it in a graph - put a front end on it and built a product. Graphs provide coherence to my problem. Could an RDBMS do this? Yes, but not without a complex intermediate query layer. I think of using a graph as analogous to specifying your problem in terms of a functional language instead of imperatively. The reason to do that is because your product is the result of maintaining consistency of an abstraction, like a DSL or a game, instead of just retrieving stored values, documents and their variations. It's disruptive to a lot of orgs as well, since there is a lot of sunk cost in RDBMS experience, so I think the applications are all net new projects. I don't foresee anyone migrating to one, but I do see a point where majority of new products use one.
- chrisweekly 8y agoGreat comment. Along similar lines, I can see GraphQL replacing traditional REST APIs for an increasingly large percent of new projects, and reaching a majority.
- johnymontana 8y agoIt's interesting that you mention GraphQL. For me, using Neo4j and GraphQL were similar experiences, in that once I started using them they offered a more intuitive and productive approach over the "standard" tools (RDBMS and REST, respectively). Once I learned Cypher and some common graph data modeling constructs, I found I could build more complex applications faster using Neo4j, largely because I found the graph model of my project's domain more intuitive and easier to work with than a relational database model. Similarly, building and using GraphQL APIs has been a huge productivity win once I figured out how to build GraphQL services. Of course, when used together, Neo4j and GraphQL have some great synergies, since it's graph all the way down ;-) It's also worth pointing out that Neo4j has some great GraphQL integrations [1]. [1] https://grandstack.io/docs/neo4j-graphql.html https://grandstack.io/docs/neo4j-graphql.html
- frant-hartm 8y agoThis is great news for Neo4j, and for the thousands of organisations that are just starting to realise that they have an unmet need that graph technology can solve. What we are seeing here is the 'commodification' of graph, a trend that happens in technology in general. Companies that launched ten years ago, on a massive investment with their own proprietary graph technology - I'm talking the likes of Twitter, Facebook and so on - today the same features could be implemented with a fraction of the investment. They'll do this by leveraging Neo4j. This funding we'll broaden the reach of graph technology, while reducing the overall cost for individual organisations to adopt. Social networks, recommendation engines, fraud detection systems are all now easily within reach. Check out our own free and open-source recommendation engine, which was built on top of Neo4j, for example: https://github.com/graphaware/neo4j-reco https://github.com/graphaware/neo4j-reco. We live in exciting times. While the commodification of what we call 'graph 1.0' is in progress, what Tesla's head of A.I. Andrej Karpathy brands "Software 2.0", that is the intersection of machine learning and software development is rapidly picking up pace. We're only at the beginning of the hype cycle on this. And guess what? IT is an established fact, is that graph is playing a central role in this transformation process. We are proud to say that our organisation is at the forefront of using graph technology to derive insight and meaning from unstructured data - we call this GraphAware Hume. We're really excited about this! As you can see we're are pretty passionate about graph technology, and Neo4j in particular, and in our opinion we're at the beginning of what is going to be a very transformative adoption. If you're thinking about exploring how graph might fit into _your_ organisation, of course feel free to reach out. Disclaimer: GraphAware (https://graphaware.com/ https://graphaware.com/) is Neo4j's solution partner
- krona 8y agoIt would be great if the Neo4j team helped jepsen.io do an analysis of their enterprise clustering features.
- mothsonasloth 8y agoNice to see a Java based technology taking off. Java will always be king of enterprise despite all the drama with the future of the JRE.
- dustingetz 8y agoPeople think Neo4J is for things like social, but Facebook's social graph doesn't actually work like Neo4J does – Facebook's load is dashboard shaped and read dominated, so query/storage/writer separation is really important. http://www.dustingetz.com/:datomic-facebook-tao/ http://www.dustingetz.com/:datomic-facebook-tao/
- Nelkins 8y agoLove Neo4j. The console makes it SO freaking easy to use!
- mschaef 8y agoAgreed.... The console is one of the better parts of the overall tool.
- gizzlon 8y agoThis is a little off topic, but there are so many graph databases out there. It's hard to know which one to start playing with.. One would think that Neo4j probably is the most stable one? But it's unclear to me if the full version is open source or not? [1][2] Has anyone tried several? Has anyone tried Dgraph? [3] [1] Community is limited according to Wikipedia [2] Trying to download enterprise takes me to a "Start a Free 30-Day Trial" page [3] https://dgraph.io/ ?
- xtracto 8y agoWe wanted to use Neo4j at my last job (in Mexico). However we found the commercial version was prohibitely expensive, and the free version did not work for real life problems. So I think this is a place where open source alternatives would have been welcomed.
- staticassertion 8y agoI've been using Dgraph for my project[0]. I quite like it, but I haven't gotten to the 'running in production' part so I haven't experienced what it's like to actually manage or scale it, only its query language and setup. [0] https://github.com/insanitybit/grapl https://github.com/insanitybit/grapl
- alpha_squared 8y agoWe're currently using it and it's got some pros/cons, though the cons are a little scary. Jepsen did an evaluation of Dgraph[0] shortly after we started using it and I can confirm seeing a lot of what was noted. Dgraph is _fast_, but there are problems with the underlying data store (their own DB called Badger). Some of those issues have been remedied, but many still exist. As a graph database, it has some non-typical tradeoffs. You can't easily discern incoming edges and there's no true node deletion. There's a pretty narrow happy-path where the DB works as advertised/expected, but it's just a fairly young DB from an understaffed startup. Probably worth waiting a year or two for the kinks to be ironed out. [0] https://jepsen.io/analyses/dgraph-1-0-2 https://jepsen.io/analyses/dgraph-1-0-2
- mrjn 8y ago
- cryptos 8y agoNeo4j seems to have performance issues: https://www.arangodb.com/2018/02/nosql-performance-benchmark-2018-mongodb-postgresql-orientdb-neo4j-arangodb/ https://www.arangodb.com/2018/02/nosql-performance-benchmark... And as far as I can remember from a former project the scalability is pretty limited (but this could have changed).
- notyourwork 8y agoFor those unfamiliar with the tech can you give numbers to frame your scaling challenges. Performance issues is too broad for me to rationalize in a meaningful way without more specificity.
- topicseed 8y agoNeo4J is mainly a one-machine database. For larger clusters, you probably want to look at ArangoDB or Dgraph, for examples. Meaning, as long as your data can be stored in one running machine, you're alright. When wanting to scale horizontally, other solutions were built with that first in mind.
- notyourwork 8y agoThat makes sense, thank you!
- sandGorgon 8y agoThe problem with neo4j is that Cassandra is a brilliant alternative with a superb hosted story - lots of providers have hosted Cassandra which scales to petabytes levels. And there is a huge scalable graph stack with Cassandra - Datastax Enterprise Graph, Titan,JanusGraph (where Google is involved), Tinkerpop,etc. The production readiness of neo4j is something I'm still not quite sure about. It truly shines as an embedded graph db though. I wonder if there is a Blockchain story around neo4j (as a replacement for leveldb) that makes this more interesting. After all there is a lot of excitement around DAG based blockchain alternatives.
- lolive 8y agoCassandra supports cypher?
- sandGorgon 8y agoNo. All of the big scale graph databases usually use Tinkerpop Gremlin . https://tinkerpop.apache.org/gremlin.html https://tinkerpop.apache.org/gremlin.html
- perlin 8y agoNeo4j, and graph databases in general, are an excellent use case for IoT access management. Our schema involved taking physical assets/personnel and representing them as different labels: machine, factory, production line, user, usergroup, etc. We then drew complex relationships between different user/groups in the organization and the assets they were responsible for. At first, we used a relational database, but it soon became difficult to go more granular than simply: user belongs to usergroup, usergroup belongs to client, client has factories, factories have lines, lines have machines. As many have pointed out here, it's not that you can't do this with non-graph databases, it just requires a more complex query layer. Neo4j allowed us to represent complex business relationships as natural language, and that really helped us as the business scaled.
- lmeyerov 8y agoTo everyone @ Neo4j, on behalf of the Graphistry team, big congrats! This may help non-graph folks understand the community a bit. Neo4j has a bunch of cool bits, and it's been a pleasure watching them bring two specific "aha!" moments to customers. Our tech helps teams build scalable visual workflows that include visual graph, so we're often brought in near the beginning of a graph project, and have repeatedly seen two situations where a DB at Neo4j's quality shines: 1. Performance: A teams starts using their existing data stores -- SQL, Splunk, etc. They'll get quite far. Often, however, they will hit some query that just cannot perform. E.g., for two bank accounts, all paths between them. For different DBs and workloads, these can be different things. 2. Ease: Asking for something like a 360 view around a device, user, patient, account, etc. is hard in sQL - you don't know what column, table, etc. to look at. Or imagine the above shortest-paths query. Cypher makes writing this stuff EASY, so in a world where a lot of people can barely do SQL, that's a superpower. Neo4j has been broadening by entering the scaleout world, app dev world, and adding multi-modal & ML capabilities, which are all important things and help grow the eco-system. Congrats again!
- jarym 8y agoGood to see interest in this space brewing. I used to use OrientDB but moved away due to stability issues (long ago now so hopefully they have that sorted). I also just noticed they’ve been acquired by SAP! For me graph layouts are conceptually superior vs relational when explaining to non techie users. Practically however I now stick to Postgres - it’s ‘good enough’ (for what I’m doing) and has a heap of benefits in and of itself. I looked st Agensgraph but I couldn’t get enough info on it, plus it is a custom version of Postgres (not a plug-in) and i think they recently switched to AGPL which makes it overall less exciting to investigate. I know there are places where having a real graph db helps but I’ve not personally hit those scenarios yet.
- thebiglebrewski 8y agoIs "nabbing a Series E" really a sign of something flourishing? The way I view investment rounds is as a letter grade. Once you've reached a "Series F" maybe you've just failed? Has this company made any profit, for instance? Just conjecture.
- kwillets 8y agoYou need a graph database to track all the levels of funding.