I wonder if there's a design decision documented somewhere that makes the existing graph databases like Neo4j, etc. not good enough for Youtrack's use case.
Neo4j is a great DB but their license price is egregious for enterprise customers. A few years ago I was involved in negotiating a contract for a small/medium size kubernetes deployment (think around 25 cores) and the annual price was more than the salary of a senior SWE full-time equivalent. See this page for an idea of their prices in 2018: https://blog.igovsol.com/2018/01/10/Neo4j-Commercial-Prices....
Also embedding Neo4j is not possible, that seems to be the killer feature for YouTrackDB, they even shade dependencies so it’s like a no deps Java library for your application.
> small/medium size kubernetes deployment (think around 25 cores
That's ~1 machine. 1 SWE for a database isn't egregious, databases provide huge value, but for that little performance, that's crazy.
I can only assume as core count has blown up over the last 10 years, the pricing has somewhat diminished, but still, I'd be expecting a heck of a lot more capacity for 1 SWE.
I can tell you from quotes that I've seen, that compared to the 2018 prices listed on the page, end-of-2022 pricing was slightly up per core.
We were already well on our way of dumping Neo4J due to performance/operational/architectural reasons at the point, but seeing the quote solidified it.
Not just that, if a database company has both a community edition and enterprise then it’s likely the enterprise will get many new features that the community edition will never get.
Didn't Neo4J pivot away from being a boring embedded DB which you point at a path and then traverse through Node objects, and decide to become some kind of paid platform with a client-server protocol and proprietary query DSL?
I remembered it from a uni course (early 10s?) a few years ago for a use-case we didn't end up pursuing, but I wasn't hugely comfortable with investing effort into what I saw.
That's true, although, if you look at them, you wouldn't notice. The only mention of JVM you can see in the IDEs is in the About dialog, and the IDEs install and run their own OpenJDK, so no JVM has to be installed globally. Almost as if they were a bit self-conscious about using such an "unsexy" architecture...
You mean a JRE, because the whole JDK contains a bunch of things you're never going to need.
Mind you, a default JRE redistribution makes your app at least 100+MB. Using jdeps to strip out unneeded things is a good idea if you want it to get down to 25 ish MBs.