Remix.run Logo
supriyo-biswas 5 hours ago

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.

pandoro 5 hours ago | parent | next [-]

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....

brabel 5 hours ago | parent | next [-]

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.

danpalmer 5 hours ago | parent | prev | next [-]

> 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.

fsuts 4 hours ago | parent | prev [-]

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.

Ongoing enshittification risk.

denismi 5 hours ago | parent | prev | next [-]

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.

zihotki 5 hours ago | parent | prev [-]

That's a good question indeed. Also I wonder why they picked java as the implementation language.

rednb 5 hours ago | parent | next [-]

Likely because they are a Java shop. All the IDEs they develop use Java, so they have quite an expertise in low level optimization for this language.

rob74 3 hours ago | parent | next [-]

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...

mike_hearn 3 hours ago | parent [-]

Bundling a JDK with the app is the officially sanctioned way to ship Java apps since Java 9, so for over a decade now.

Hendrikto 2 hours ago | parent | next [-]

The JDK is too big for every app to do that, imo.

pjmlp an hour ago | parent [-]

Which is why there are linking and packaging tools for trimming fat that isn't needed, or even AOT compile the application.

well_ackshually an hour ago | parent | prev [-]

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.

jonathanlydall 5 hours ago | parent | prev [-]

They also have C# expertise, but yes, Java is probably the language they have the most expertise in.

fsuts 4 hours ago | parent | prev | next [-]

Date of commits shows this project is 3 years old.

It’s JetBrains who were synonymous with Java so not a surprise, if was a recent project would have been Kotlin (which this company created)

winrid 4 hours ago | parent [-]

Probably worth saying it's a fork of orientdb from like 2010.

ChrisRR 44 minutes ago | parent | prev [-]

Because Youtrack itself is written in java