10 ms·
Ask HN: What Is Going on with Neo4j?
Neo4j Inc just laid off 10% of its employees.
The negative reviews in GlassDoor are piling up, and seem to share common themes - and it is not pretty.
There are accusations that management tried to lie to early investors about revenue sources.
Does anyone have any idea or insight into what is going on with them?
- datawonkTO 4y agoWhat does neo4j have that networkX or other free graph python packages don’t? I tried using neo4j api from dataiku and it scaled so poorly compared to networkX which was such a breeze and interacted seamlessly with other python objects in the code.
- PaulHoule 4y agoI have been involved with graph databases and always thought Neo4J was a joke, it was based on an execution model which is not scalable at all. I heard story after story from people who tried it for projects which were just too big and wanted to ask, “what did you think would happen?”
- alostpuppy 4y agoAny graph dbs that so scale?
- HyperSane 4y agoHorizontaly scaling graph DBs is incredibly hard.
- holler 4y agoWhat's your thought on AWS Neptune? From the marketing page below: "Scale your graphs with unlimited vertices and edges, and more than 100,000 queries per second for the most demanding applications. Storage scaling of up to 128Tib per cluster and read scaling with up to 15 replicas per cluster." https://aws.amazon.com/neptune/ https://aws.amazon.com/neptune/
- HyperSane 4y agoThat isn't real horizontal scaling, they are just doing a single vertically scaled writer and read only replicas, just like they do with RDS. It probably is using the same infrastructure for it.
- deleted 4y ago[deleted]
- rrwright 4y ago1,000,000 events per second with https://Quine.io https://Quine.io https://www.thatdot.com/blog/scaling-quine-streaming-graph-to-process-1-million-events-sec https://www.thatdot.com/blog/scaling-quine-streaming-graph-t... Full disclosure: I work on this project.
- jandrewrogers 4y agoWhen I first saw the benchmark result I was pleasantly surprised by the performance, you rarely see that on a single large server but it is achievable if the implementation properly does all the hard bits. Then I saw that it required 140(!) servers to achieve that result and now I’m wondering what all that hardware is actually doing. On a per-server basis, that is very low throughput, even for graphs. Efficiency that low will make it uneconomical for most graph applications.
- rrwright 4y agoThat’s not an optimized benchmark, just a demonstration using a real customer workload. Throughput depends on the workload but goes up to about 20,000 events per second per machine. All this is while simultaneously querying the graph and streaming out 20,000+ events per second. All that includes durable storage. Price it out against Neptune instead and Quine is much less than 1% of the cost.
- kleinsch 4y agoTao
- jandrewrogers 4y agoNot really, but that depends on your definition of “scale”. To make one that scales well, you’ll need to solve a few difficult computer science problems that conventional database architectures don’t need to consider and therefore don’t address. These are problems like graph cutting, multi-attribute search without secondary indexes, cache-less I/O schedulers, and a couple others. Scalable solutions to all of these problems exist independently but I’ve never seen any graph database implementations that even attempt to address most of these, never mind all of them, and you kind of need to remove these bottlenecks. As long as most graph databases are just a layer of graph syntactic sugar sprinkled on top of a conventional database architecture, they won’t scale.
- lolive 4y agoOn a previous project, we reached the limit of 32 billions of unique IDs (Neo 3.2 if I remember well). And had to wait for the next version so we could add more data. I left the project. But, as far as I know, there are still planes maintained and authorized to fly in the sky, so I suppose the DB is still up in production.
- deleted 4y ago[deleted]
- lolive 4y agoAnd I am pretty sure the number of IDs in the DB has skyrocketed since that time.
- logicalmonster 4y agoJanusGraph may or may not fit your needs, though there's quite a learning curve even figuring out how to set it up.
- tszming 4y agoso what graph database you end up with?
- PaulHoule 4y agoIt's been a long strange trip. I don't think a single product is going to satisfy everyone and that's a problem with the category. If by "graph database" you mean you want to do completely random access workloads you are doomed to bad performance. There was a time when I was regularly handling around 2³² triples with Openlink Virtuoso in cloud environments in an unchanging knowledge base. I was building that knowledge base with specialized tools that involved * map/reduce processing * lots of data compression * specialized in-memory computation steps * approximation algorithms that dramatically speed things up (there was a calculation that would have taken a century to do exactly that we could get very close to in 20 minutes) Another product I've had a huge amount of fun with is Arangodb, particularly I have used it for applications work on my own account. When I flip a Sengled switch in my house and it lights up a hue lamp, arangodb is a part of it. I am working on a smart RSS reader right which puts a real UI in front of something like https://ontology2.com/essays/ClassifyingHackerNewsArticles/ https://ontology2.com/essays/ClassifyingHackerNewsArticles/ and using Arangodb for that. I haven't built apps for customers with it but I did do some research projects where we used it to work with big biomedical ontologies like MeSH and it held up pretty well. I came to the conclusion that it wasn't scalable to throw everything into one big graph, particularly if you were interested in inference and went through many variations of what to do about it. One concept was a "graph database construction set" that would help build multi-paradigm data pipelines like the ones described above. One thing I got pretty sure about was that it didn't make sense to throw everything into one big graph, particularly if you wanted to do inference, so I got interested in systems that work with lots of little graphs. I got serious and paired up with a "non-technical cofounder" and we tried to pitch something that works like one of those "boxes-and-lines" data analysis tools like Alteryx. Tools like that ordinarily pass relational rows along the lines but that makes the data pipelines a bear to maintain because people have to set up joins such that what seems like a local operation that could be done in one part of the pipeline requires you to scatter boxes and lines all across a big computations. I built a prototype that used small RDF graphs like little JSON documents and defined a lot of the algebra over those graphs and used stream processing methods to do batch jobs. It wasn't super high performance but coding for it was straightforward and it was reliable and always got the right answers. I had a falling out with my co-founder but we talked to a lot of people and found that database and processing pipeline people were skeptical about what we were doing in two ways, one was that the industry was giving up even on row-oriented processing and moving towards column-oriented processing and people in the know didn't want to fund anything different. (Learned a lot about that, I sometimes drive people crazy with, "you could reorganize that calculation and speed it up more than 10x" and they are like "no way", ...) Also I found out that database people really don't like the idea of unioning a large number of systems with separate indexes, they kinda tune out and don't listen until you the conversation moves on. (There is a "disruptive technology" situation in that vendors think their customers demand the utmost performance possible but I think there are people out there who would be more productive with a slower product that is easier and more flexible to code for.) I reached the end of my rope and got back to working ordinary jobs. I wound up working at a place which was working on something that was similar to what I had worked on but I spent most of my time on a machine learning training system that sat alongside the "stream processing engine". I think I was the only person other than the CEO and CTO who claimed to understand the vision of the company in all-hands meetings. We did a pivot and they put me on the stream processing engine and I found out that they didn't know what algebra it worked on and that it didn't get the right answers all the time. Back in those days I got on a standards committee involved w/ the semantics of financial messaging and I have been working on that for years. Over time I've gotten close to a complete theory for how to turn messages (say XML Schema, JSON, ...) and other data structures into RDF structures and after I'd given up I met somebody who actually knows how to do interesting things with OWL, I got schooled pretty intensively, and now we are thinking about how to model messages as messages (e.g. "this is an element, that is an attribute, these are in this exact order...") and how to model the content of messages ("this is a price, that is a security") and I'm expecting to open source some of this in the next few months. These days I am thinking about what a useful OWL-like product would look like with the advantage that after my time in the wilderness I understand the problem.
- throwoutway 4y agoAsking “what did you think would happen” is arrogant. They probably did not know as much as you
- teej 4y agoIf you pick a technology to deploy within a company, you need to own the outcomes of that choice. “I didn’t know” isn’t an acceptable excuse. When faced with unknowns, it’s your job to anticipate, mitigate, uncover problems, etc. No one can know everything. That’s a fact. But these issues with Neo4j aren’t exactly hard to find. There are loads of folks who have talked about their negative experiences with it. Setting up a proof of concept would confirm them.
- Railsify 4y agowhat about the execution model is not scalable? I've got a side project using neo4j, maybe I can avoid a major mistake here?
- iod 4y agoWhen it comes to graph databases, my favorite is still ArangoDB, definitely worth checking out if you are worried and looking for alternatives. https://www.arangodb.com https://www.arangodb.com
- alsargent 4y agoThank you! (ArangoDB employee here...)
- halfmatthalfcat 4y agoFunny I just had a recruiter reach out about a 6mo CTH position at Neo4j. Never took it seriously but wonder how that squares with these layoffs.
- mardifoufs 4y agoThe negative glassdoor reviews seem to be mostly if not almost from sales staff. Not sure what that means but it's a bit weird to see such a skewed ratio!
- ethbr0 4y agoIf a company is pivoting from growth (previous priority) to financial sustainability (current priority), sales is the first area to get the axe.
- busterarm 4y agoTheir sales had a strong uphill battle to fight... The company was totally infleible with their very outdated licensing model and it constantly lost them potential customers.
- wharfjumper 4y agoWe're in the process of migrating off Neo4j/OngDB to Postgres. Happy with how it's going so far.
- moralestapia 4y agoInteresting, can you share more details? Is your data graph-like or more like tabular but you chose Neo4j anyway? What kind of functions from Postgres are you using to emulate Neo4j features?
- CharlieDigital 4y agoHad the exact opposite experience with N4j. Easy to operate, scale and run. We started in 2014 and in 2018 did a large scale enterprise rollout with a large customer. The performance test we put it through loaded millions of nodes and millions more edges with non trivial data and scaled to 800 concurrent users (could have been even more but for the fact that the web servers we had for this test scenario started to max out since the system was scaled for 200 concurrent and we were basically stress testing it at this point). In the early days, there were a few edge cases of query incompatibility between versions that we caught with unit tests, but otherwise very stable, easy to operate, and easy to use. Cypher is one of my favorite query languages. Very surprised that people had issues with it.
- sum1ren 4y agoCould it because many people are evaluating the community version of the database? The enterprise/Aura (cloud) is definitely designed to be more scalable
- CharlieDigital 4y agoCould be. We only used the community version for dev, but even that could scale quite well for a single node on SSDs. But we also spent a lot of time learning how to map our use case to it.
- 4y ago
- newaccount2021 4y ago
- Railsify 4y agoI use neo4j in a sideproject, they did a bait and switch with the license model, I was not happy about that.
- yehudalouis 4y agoNeo4j was a terrible experience as a developer. It crashed constantly, local dev required me to finagle around with Java SDK versions and packages. I'm not gonna mess about with that. Their managed offering was equally as shitty, and their own Go SDK was so poor that I ended up scrapping it all together. We landed on running RedisGraph atop Redis, and got it up and running in 45 minutes. Zero downtime. Zero complaints. Awesome.
- mark_l_watson 4y agoI am curious: was your company using the free version or the commercial product? I have enjoyed using the free version of Neo4J on my laptop but never at scale.
- ayewo 4y agoJudging by what they said: "Their managed offering [1] was equally as shitty ..." the gp was referring to the commercial product. 1: https://neo4j.com/cloud/platform/ https://neo4j.com/cloud/platform/
- 1attice 4y agoI think probably memgraph.com is what's going on with neo4j
- cutemonster 4y agoInteresting. You have any experience with Memgraph? Did Neo4j remove the enterprise edition source code? Maybe Memgraph was the inspiration for that too hmm
- john-mark 4y agoYes they closed the enterprise source code. They first tried adding the commons clause, then when that did not accomplish what they wanted, they closed the enterprise source code. The kicker is that this was not because of behemoth like Amazon or Oracle, it was because of a single individual… (guess who?) Good read to get a better picture: https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink-open-source-affero-gpl/ https://sfconservancy.org/blog/2022/mar/30/neo4j-v-purethink...
- cutemonster 4y agoThanks for the link, interesting to read. "The issue as to whether the clause can be removed is still pending" -- that was in Mars, is it still pending now in December? My guess was that indeed it could have been you :-) (which it was) since I couldn't think of anyone else. Annoying behavior by Neo4j, and also interesting that AGPL didn't work for them
- david_p 4y agoI work closely with Neo4j and Memgraph. What is happening to Neo4j is not directly related to Memgraph. Neo4j raised a lot of cash and their investors have a lot of expectations now, this puts their sales under a lot of pressure and has pushed them to raise prices. On the other hand, Memgraph is cheap and aims at being compatible with Neo4j from an API point of view (even though their don't share any tech background : Neo4js is Java, Memgraph is C++). Memgraph can be a good replacement for Neo4j, but is not yet popular enough to be a menace for Neo4j in the short term.
- mavelikara 4y agoWhy did you ask? Are you a customer? Or an (ex)-employee?
- rkwz 4y agoI was leaning towards Neo4j as it had support for graph algorithms such as WCC, louvain etc What would be a good alternative for it?
- jauco 4y agoBlazegraph / amazon neptune (they’re the same thing) Or checkout tinkerpop and the databases that support it.
- WirelessGigabit 4y agoPart of our team uses Neo4j. It's a giant pain in the ass. The amount of time we've spent on the phone with their support trying to unravel bugs that they caused is insane. We don't get that with a paid product like MSSQL. Hell, Postgres isn't that bad and it's FREE! The cost of Neo4j also went up with their new model. (see https://neo4j.com/blog/open-core-licensing-model-neo4j-enterprise-edition/ https://neo4j.com/blog/open-core-licensing-model-neo4j-enter...) And they did the thing with the closing their source which nasty. Then there's the separation of OnGDB which we looked at, but that didn't go well either. One day they deleted all of their packages. All gone. Thank God we had caches, but it took them a while to come back online. In hindsight because Neo4j had sued them. I understand that but that caused a LOT of headaches. I feel that Graph databases are one of those things like Document databases. You probably don't need it...
- zeninma 4y agoI am curious for your insights on why Neo4j is still used despite all the pains it incurred? What would be a better approach to solve the same problem with a more conventional DBMS like Postgres? Thanks!
- qorrect 4y ago> I feel that Graph databases are one of those things like Document databases. You probably don't need it... I got a really good chuckle out of that.
- bottlepalm 4y agoAny relational database can be represented as a graph, which means any fresh hot dev is going to want to port the entire company over to a ‘graph’ database. That’s just common sense right. It’s a slam dunk when pitched to management.
- rippercushions 4y agoSpicy take: graph databases are the blockchain of the database world. Sounds sexy, scales badly, has very few if any use cases that traditional databases can't handle better.
- chillfox 4y agoI have only encountered one problem that was best solved with a graph style query and I did that in sqlite. So what would likely be nice is a better query language that can compile to sql.
- styluss 4y agoWhat was the use case? I agree, a lot of stuff that is supposedly magic in graph dbs aren't that hard to do in SQL.
- chillfox 4y agoNodes with specific properties within a certain number of connections from a specific node, only going through nodes with specific other properties, ordered in fewest connections to most. I was looking for profitable trade routes in EVE Online.
- lolive 4y agoSuch as multiple inheritance?
- mrweasel 4y agoIt doesn't seem that spicy. Graph databases are a niche thing. While I can't think of a problem I've had to deal with that would require one, I'm sure there are some problems where they make sense. In those cases you could just charge people whatever you feel like. That does come with expectations, and from the comments it seems like Neo4J haven't been able to deliver. Anyway, pricing, for niche product, you don't have a $64.80/month offering, bump that to a $1000 for a developer version and just stick the "Contact Sales" on everything else. If you need a graph database (or any specialized database) then pricing is almost irrelevant.
- hermitcrab 4y ago>R is extremely slow at a lot of tasks, for one thing, even more than Python. Base R is quite slow. R + data.table is faster than Python + Pandas in a benchmark that I did recently. For a 1 million row CSV file, Read + Sort + self-Join + Write took on a Windows box: Base R: 47.56s Python + Pandas: 6.44s R + data.table: 2.99s More details at: https://www.easydatatransform.com/data_wrangling_etl_tools.html https://www.easydatatransform.com/data_wrangling_etl_tools.h...
- eatonphil 4y agoI think you've commented on the wrong thread. :)
- hermitcrab 4y agoOops. That was meant to be a comment on the 'Every modeler is supposed to be a great Python programmer' thread.
- usesqlreally 4y agoI once wrote a project (that is still in production) that used a graph database. It was definitely a graph workflow and I thought using a graph database was the right solution. I apologize to whoever has to maintain that system now, and if they have not already replaced it with SQLite or PostgreSQL, I hope they will.
- jerven 4y agoGraph, alone does not make a selling feature list. You need to bring more to the long term enterprise problem space. i.e. otherwise it is just one more specific database for one or two projects, with annoying sales and contract negotiations. And each time that contract comes up for renewal the project will be looked at and investigated for migration to a more common stack. At the same time they seemed to have put out quite a bit of marketing to developers, but hard to see their pitching solutions for the "enterprise" problems. Comparing this to the RDF Graph players, whom seem more focussed on playing well with all the other parts of the existing infrastructure. e.g. Virtual graphs on SQL dbs etc. (Personal bias to RDF so take that into account). In the end we will see if the 500$ million investment in market share will materialize as long term sound investment.
- busterarm 4y agoThey certainly want to be charging enterprise database pricing when they don't really have enterprise solutions. The way they build and pitch their product is straight out of the 1990s Oracle playbook.
- john-mark 4y agoThis post is several years old, but it shows what their prices were back when neo4j enterprise was available commercial or AGPL. As soon as end users learned they were getting the same software either way, guess what they picked? (This is my blog post - iGov Inc is just me) https://blog.igovsol.com/2018/01/10/Neo4j-Commercial-Prices.html https://blog.igovsol.com/2018/01/10/Neo4j-Commercial-Prices....
- b800h 4y agoAbout 7-8 years ago it was almost impossible to avoid Neo4j in tech circles, certainly in London. They must have had the most incredible funding - the PR was nonstop and wall-to-wall.
- Terretta 4y agoToo many of these "Company X laid off y%, what's going on?" threads. In general, a healthy emerging technology workforce should likely have ~ 20% turnover annually to stay fresh and modern. That means an average outside knowledge age of five years, which is quite long. Some percentage of that 20% should be voluntary. If everyone stays 5 years before moving on, that's 20% turnover, with people leaving in 2 years balanced by people staying eight years, a long time in software years. Some percentage really should be so-called desired attrition, helping people find a better place. It's unlikely all hires are great fits -- impressive if only 1 in 10 would be a better fit somewhere else -- so unlikely that 10% is as indicative of problems as you worry. For reasons, most firms are incapable of grappling with that day to day, so it takes adverse externalities to push them to encourage fit and upskilling mobility that should be normal. If a firm can learn to help people find better fits and bring in current outside skills as a regular everyday part of business (rather than once a year layoffs), the firm will be much healthier. // Finally, consider Postgres. ;-)
- john-mark 4y agoI touched on the negative Glassdoor reviews in this thread. Do you see a common pattern/theme? https://twitter.com/jmsuhy/status/1600093327130431488?s=61&t=RCr4Cr9BksHqieGCp7M62g https://twitter.com/jmsuhy/status/1600093327130431488?s=61&t...