I did give it a spin. Both on AuraDB and on our local servers but in the end, I decided to go with Memgraph. Since they both use Cypher, it was an easy switch. ↔ For the past 4 months, we have been running Memgraph on our server, and our data analysts are using Memgraph Lab for querying and visualization. Fun fact, after we ditched Neo4j, I found out that Memgraph has also released support for Neo4j as part of Memgraph Lab. :)
@@ShinAkuma okay but for real some of the companies put a requirement such as "Must have experience using x language for more than 10 years" when that language was released 4 months ago (over exaggeration)
my mantra is just use postgres :D new and trendy tech always fails and creates problems junior devs not making megaapps anyways... premature optimization is pointless as well.. likelyhood that a company where u going to get ur first jobs are using neo4 is almost non-existent
I created a knowledge graph using wikipedia category graph via Python and Neo4j in my college project. It was a super fun and easy project. Neo4j is a very great tool
Neo4J is used as the database for bloodhound, which is a very popular recon and pathing tool on penetration testing. You simply dump json files containing data from owned machines on a network, and the graph relationships can visualize the shortest path to domain admin. It’s pretty cool.
Using neo4j at work for some pretty specific data modeling, it's a very interesting way to structure data and forces you to think about it differently than tables and joins Also it's pretty common for social media and such to use traditional SQL dbs instead and manage the graph structure with regular joins or in the application layer, even if graph dbs theoretically are applicable
yeah, because the hard parts are not the representation (graph, tree, relational, document based, time series, etc etc), but solving problems around scale, both vertical and horizontal the more mature systems have very robust solutions for these (e.g. mysql with vitesse) nonetheless it's cool to have options
Compared to SQL databases, graph ones are pretty new. If your mind set is all about joins, it is hard to get out of it. But, boy, oh, boy... Once you are our - sweat smell of freedom! The whole new world opens up.
Oh wow something on this channel i can actually add something to! I worked with neo4j in an enterprise environment, that scaled from a startup, so neo4j became legacy code in that time. I was brought on to clean the backend, but quickly ran into troubles. For starters cypher is great though a little obtuse, but bytecode support in python is incomplete and managing even medium complexity datamodels was a poor experience. Aura was a bag of worms, you cant delete large amounts of data without crashing the db, which requires a support service call (no alerts or automated processes on their end to fix this, massive SLA headache on our end). But its the costing model thats atrocious for businesses, with little to no worthwhile support and a whole lot of issues besides, so many hacks needed to make optimisations for simple usecases, it was alot of money for very little. I’d say great for research and PoCs, but step through its limitations carefully if your looking to scale out with it.
Yeah that's what I thought, it's "great" on a little toy app and as a little mental puzzle. Data storage and retrieval is a very difficult problem, DBs have been improving upon it for decades, there is lots of information. Unless you use one of these fancy new things, then you are throwing all this research out the window.
I love Neo. I love working with Neo. It’s really too bad I’ve been unable to convince the powers that be to provision the resources necessary to use it in our projects at work. Cypher is one of the greatest query languages I’ve EVER used and it makes me sad I can’t work with it more
@@ivanpavlovnorth Not a fan of Gremlin tbh. I will dig my heels in that Cypher is superior in every way. I only wished that the OpenCypher project to get that query language into more places had actually done what it was supposed to do
@@KyleHarrisonRedacted I agree, Gremlin feels more like math than a human friendly query language. OpenCypher is basically finished, although Neo4j staff mentioned to me that constraints might be standardized some day - although there is no priority/roadmap for that right now. GQL (Graph Query Language, which is neither SQL nor GraphQL) is currently being standardized, I expect the finished standard within 1.5 years
Your bosses probably would want the readability and maintainability of the codebase. Because once youre gone, it would be hard to search for a candidate that has a grasp knowledge of neo. Moreover, they would NOT want to spend time again for teaching new hires for neo.
I was so happy to see this collab! My favourite Dev TH-camr, and my favourite database! Although I have been using Neo4j for two years to great effect, I loved this video! Congrats to both of you!
As someone who basically never has to touch a database, this makes so much more sense than glorified excel spreadsheets. How come its not more popular?
Relational databases are better at aggregating data for reporting. But I agree, I'm surprised graph dbs aren't used more for applications. I guess once people learn SQL, they don't want to learn another query language.
@@i_accept_all_cookies and I feel like the scalability of a graph is pretty poor, it could fit for a short number of relations but when creating an app there's different schemas that each one represents different entities and tabular data could improve finding and storing the data better than a graph imo.
@@King_Deundel If I understand correctly, it requires a careful balance of nodes and properties within them to optimize for your use case's performance. But then, reuse is impacted. An RDF triplestore is reusable for any use case, but like you said, performance would be impacted.
Graph databases often lack performance compared to relational database systems, such as PostgreSQL. For example it can be slow to load large datasets, poor scalability and unreliable. Additionally there is no standard query language yet, so comparing different systems can be tricky since every system has its own language. In terms of query language I would say Cypher provides a more intuitive syntax compared to SQL (as said in the video), but under the hood you still join two tables like you would with SQL. And even then, this year SQL:2023 will allow you to write 'Cypher style' queries in SQL so you can use a faster, more reliable relational database instead :)
@@danieltenwolde1959 how's that, do you have a source for SQL:2023 I haven't heard of a big change on SQL Language. Is it only SQL or would PSQL also have that update
this is impressive... 6 years of software development with sql reflationary databases and in 100 seconds you've proven to me why i should move to graph. love this channel first i moved to typescript from javascript now this
There are trades-off when using a graph database: they are a lot slower, and take a lot more space in storage than a relational DB. You should use them sparingly.
Postgres has an addon called AgensGraph where you can also use Cypher. Truth be told, I don't really care about neo4j, but Cypher is a true godsend of a language.
yep, much better choice, neo4j is a trash company with predatory practices and insane licensing fees after having the open source community build their product
The best thing about Fireship is that it not only introduces the new tools to us but also shows how to implement them inside a code. Thanks man! For all your videos.
Neo4j has the significant advantage that you can develop server plugins in Java, which are executed on the database server. This means that, in theory, there are no upper limits to the complexity of queries, as you can always fall back on implementing your own functionality. This opens up a whole new dimension of complex and specific database queries. Additionally, by leveraging Java, you can integrate with a vast ecosystem of libraries and tools, enabling advanced analytics, custom algorithms, and more efficient data processing directly within the database environment. This flexibility allows for more tailored solutions to unique business problems and can significantly improve performance and reduce the need to move data between different systems.
Before watching the video: “Oh god, not another Javascript library/framework…” After the video: “Huh, neato! This neo4j sounds cool to me as a backend developer.”
Good explanation! I just wrote an application using their GraphQL driver. HUGE win. My server is only 100 lines because its basically the type definitions and relationships schema plus some apollo boilerplate. Definitely check it out.
Neo4j paving the road for all graph databases through Fireship! Nice vid! openCypher implementers include Redisgraph, anzograph, and of course Neo4j, but also a PostgreSQL extension called Apache AGE. Native graph storages are great, but extensions like AGE can help relational users who are in need of graph analytics!
Having more than 2 years of Neo4J experience in the real world, I can say, Neo4J is an extremely difficult database to optimise. As your transactional data grows, your bad decisions in the previous queries creep up exponentially. Though really powerful, intuitive and fun, please be assured, you are playing with fire so be extremely careful. 😛
FINALLY, you cover something that I learned in school 5 years ago, have never and probably will never use and do not care about at the moment. This is rare.
I've read a book (available for free on their website) and I remember that for this query : get the friends of friends of friends of friends of friends of a user, it takes more than 30 seconds for mysql while less than a second for neo4j
What the actual hell is going on????? if there was this new way of storing data and using it for easy visualization how come it wasn't thought in universities? I was so waiting to know how all these technologies got better to do personalized ads. Such amazing, and I'm going to be trying it thank you fireship!
Was thinking about how popular you've become, and it dawned on me: you're an animated, modern, bite-sized Head First author :D Your humor and easy examples remind me of one of my favorite series.
When it comes to graph databases, I have just one condition: the query language has to be Cypher. I've checked all of the databases listed on the OpenCypher site, and I decided to go with Memgraph. I've never regretted that decision.
I've been using Neo4j for personal projects for about 5+ years now. Not sure why it isn't more popular. I would never go back to sql by choice. Someone needs to write an Express/React js & Neo4j version of Wordpress.
Neo4j is the gold standard for graph databases. Try out their awesome new serverless AuraDB for free bit.ly/3Jcl6bO
bag secured
@@jpbastyr you forgot furst
I did give it a spin. Both on AuraDB and on our local servers but in the end, I decided to go with Memgraph. Since they both use Cypher, it was an easy switch.
↔ For the past 4 months, we have been running Memgraph on our server, and our data analysts are using Memgraph Lab for querying and visualization.
Fun fact, after we ditched Neo4j, I found out that Memgraph has also released support for Neo4j as part of Memgraph Lab. :)
Waiting for the day when notification pop up with Scala in 100 sec
@@euPythonista did you join YT today just to make this comment?
I can officially add 10 years experience of Neo4J to my resume. Thanks Fireship!
For real bro. His videos is so much helpful
You're using neo4j since before it was created ? You're hired!!!!
@@ShinAkuma okay but for real some of the companies put a requirement such as "Must have experience using x language for more than 10 years" when that language was released 4 months ago (over exaggeration)
@@ShinAkuma It's 16 years old thoughh?
@@dominiksramko I didn't really bother to check the date and assumed it was something new lol.
We need something like 'when u should use relational db and when not in 100 seconds'
agreed
+1
+1
my mantra is just use postgres :D
new and trendy tech always fails and creates problems
junior devs not making megaapps anyways... premature optimization is pointless as well..
likelyhood that a company where u going to get ur first jobs are using neo4 is almost non-existent
@@Microphunktv-jb3kj postgres my beloved
I created a knowledge graph using wikipedia category graph via Python and Neo4j in my college project. It was a super fun and easy project. Neo4j is a very great tool
working on something similar👍
Is the code on github? that sounds really cool
Just use Wikidata
meanwhile in our uni, they're still teaching deprecated Php syntax and MySQL....
@@rafaelpascua7630 There's still PHP jobs out there!
Not me rewriting everything I did when a new 100 seconds from Fireship comes out
Totally me rewriting everything I did when a new 100 seconds from Fireship comes out
Don't touch it if it's working
@@vladklevizal8881 chad
I was still thinking about eventually maybe using SurrealDB
You too? I had to switch lanauges so I'd stop
Neo4J is used as the database for bloodhound, which is a very popular recon and pathing tool on penetration testing. You simply dump json files containing data from owned machines on a network, and the graph relationships can visualize the shortest path to domain admin. It’s pretty cool.
Using neo4j at work for some pretty specific data modeling, it's a very interesting way to structure data and forces you to think about it differently than tables and joins
Also it's pretty common for social media and such to use traditional SQL dbs instead and manage the graph structure with regular joins or in the application layer, even if graph dbs theoretically are applicable
yeah, because the hard parts are not the representation (graph, tree, relational, document based, time series, etc etc), but solving problems around scale, both vertical and horizontal
the more mature systems have very robust solutions for these (e.g. mysql with vitesse)
nonetheless it's cool to have options
Compared to SQL databases, graph ones are pretty new. If your mind set is all about joins, it is hard to get out of it. But, boy, oh, boy... Once you are our - sweat smell of freedom! The whole new world opens up.
@@anyadatzaklatszjutub Neo4j is a whole lot faster for graph-based queries than a relational database though
Typically because traditional SQL shards and scales much better. And in combination with key value stores/caches, it gains added performance
Oh wow something on this channel i can actually add something to!
I worked with neo4j in an enterprise environment, that scaled from a startup, so neo4j became legacy code in that time.
I was brought on to clean the backend, but quickly ran into troubles.
For starters cypher is great though a little obtuse, but bytecode support in python is incomplete and managing even medium complexity datamodels was a poor experience.
Aura was a bag of worms, you cant delete large amounts of data without crashing the db, which requires a support service call (no alerts or automated processes on their end to fix this, massive SLA headache on our end).
But its the costing model thats atrocious for businesses, with little to no worthwhile support and a whole lot of issues besides, so many hacks needed to make optimisations for simple usecases, it was alot of money for very little.
I’d say great for research and PoCs, but step through its limitations carefully if your looking to scale out with it.
Yeah that's what I thought, it's "great" on a little toy app and as a little mental puzzle. Data storage and retrieval is a very difficult problem, DBs have been improving upon it for decades, there is lots of information. Unless you use one of these fancy new things, then you are throwing all this research out the window.
I love his example where he just summarize how stackoverflow works in a humorous way and true at the same time.
I love Neo. I love working with Neo. It’s really too bad I’ve been unable to convince the powers that be to provision the resources necessary to use it in our projects at work. Cypher is one of the greatest query languages I’ve EVER used and it makes me sad I can’t work with it more
Except for Cypher, there is a Gremlin Query Language, which looks more modern and from my point of view is more human-friendly.
@@ivanpavlovnorth Not a fan of Gremlin tbh. I will dig my heels in that Cypher is superior in every way. I only wished that the OpenCypher project to get that query language into more places had actually done what it was supposed to do
@@KyleHarrisonRedacted I agree, Gremlin feels more like math than a human friendly query language.
OpenCypher is basically finished, although Neo4j staff mentioned to me that constraints might be standardized some day - although there is no priority/roadmap for that right now.
GQL (Graph Query Language, which is neither SQL nor GraphQL) is currently being standardized, I expect the finished standard within 1.5 years
Your bosses probably would want the readability and maintainability of the codebase. Because once youre gone, it would be hard to search for a candidate that has a grasp knowledge of neo. Moreover, they would NOT want to spend time again for teaching new hires for neo.
@@imdanielmartinez true, in Germany there are currently just a couple houndred jobs which mention Neo4j in their job descriptions.
I was so happy to see this collab!
My favourite Dev TH-camr, and my favourite database!
Although I have been using Neo4j for two years to great effect, I loved this video! Congrats to both of you!
Used it 6 years ago on a indoor mapping & routing system. Had a great time with it
My go to database for anything graph data. Love it.
can it scale to support Twitter Celebrity and their followers? Like 1:100 million+ graph edges?
@@damienspectre4231 +1
"Written in java" *closes tab*
Finally. I've wanted to use Neo4j for so long. Surprisingly I see it in 100sec. This helps me much.
Picked up redisgraph as my first graph database a few weeks ago and loving it. Way easier to do so many things than with relational databases
Great thing about RedisGraph is it uses CypherQL as well. Plus for smaller stuff it uses way less resources than Neo4j does.
Fireship should take this opportunity to transition to the Semantic Web stack, explaining triplestores, SPARQL and the lot.
Agreed! So much to explore in the W3C stack
Agree!
As someone who basically never has to touch a database, this makes so much more sense than glorified excel spreadsheets.
How come its not more popular?
Relational databases are better at aggregating data for reporting. But I agree, I'm surprised graph dbs aren't used more for applications. I guess once people learn SQL, they don't want to learn another query language.
@@i_accept_all_cookies and I feel like the scalability of a graph is pretty poor, it could fit for a short number of relations but when creating an app there's different schemas that each one represents different entities and tabular data could improve finding and storing the data better than a graph imo.
@@King_Deundel If I understand correctly, it requires a careful balance of nodes and properties within them to optimize for your use case's performance. But then, reuse is impacted. An RDF triplestore is reusable for any use case, but like you said, performance would be impacted.
Graph databases often lack performance compared to relational database systems, such as PostgreSQL. For example it can be slow to load large datasets, poor scalability and unreliable. Additionally there is no standard query language yet, so comparing different systems can be tricky since every system has its own language.
In terms of query language I would say Cypher provides a more intuitive syntax compared to SQL (as said in the video), but under the hood you still join two tables like you would with SQL. And even then, this year SQL:2023 will allow you to write 'Cypher style' queries in SQL so you can use a faster, more reliable relational database instead :)
@@danieltenwolde1959 how's that, do you have a source for SQL:2023 I haven't heard of a big change on SQL Language. Is it only SQL or would PSQL also have that update
Very intriguing! Great job, Fireship!
this is impressive... 6 years of software development with sql reflationary databases and in 100 seconds you've proven to me why i should move to graph.
love this channel
first i moved to typescript from javascript
now this
There are trades-off when using a graph database: they are a lot slower, and take a lot more space in storage than a relational DB. You should use them sparingly.
@@OzoneGrif thanks man.... i got the impression that it was almost the same. but i think majority of my apps could benefit of the graph
@@OzoneGrif not true
I'm a complete beginner when it comes to programming, but this made so much sense it actually spurs a bit of hope
Redis also has a RedisGraph module that also uses Cypher as a query language. it's pretty neat!
Postgres has an addon called AgensGraph where you can also use Cypher. Truth be told, I don't really care about neo4j, but Cypher is a true godsend of a language.
yep, much better choice, neo4j is a trash company with predatory practices and insane licensing fees after having the open source community build their product
@@110110010 the addon (extension) is called Apache AGE. AgensGraph is a Postgres-forked graph database. Anyways, both use openCypher.
I have been using Neo4j for the past 2 yrs and I love it
💗
The best thing about Fireship is that it not only introduces the new tools to us but also shows how to implement them inside a code. Thanks man! For all your videos.
Neo4j has the significant advantage that you can develop server plugins in Java, which are executed on the database server. This means that, in theory, there are no upper limits to the complexity of queries, as you can always fall back on implementing your own functionality. This opens up a whole new dimension of complex and specific database queries. Additionally, by leveraging Java, you can integrate with a vast ecosystem of libraries and tools, enabling advanced analytics, custom algorithms, and more efficient data processing directly within the database environment. This flexibility allows for more tailored solutions to unique business problems and can significantly improve performance and reduce the need to move data between different systems.
Neo4j is amazing and simplified with nodes thanks fireship
Interviewer: How much experience do you have on Neo4j?
Me: 100 seconds.
God I love Neo4j, I use it for every personal project. It really is incredible.
It's really fun!
Before watching the video: “Oh god, not another Javascript library/framework…”
After the video: “Huh, neato! This neo4j sounds cool to me as a backend developer.”
Im not even joking, this seems like an incredible way to handle databases.
I MUST try this out asap.
Love how fireship includes relevant and relatable examples such as getting downvoted on SO.
I gotta show this to my colleagues that are currently trying to move to Postgres. We literally have a graph in our core product logic
Great video! I would love a "Scala in 100 Seconds"
He's BACK! The Legend himself. Thank you my friend. You have helped me greatly along your path. I recommend your channel to people all the time.
Good explanation! I just wrote an application using their GraphQL driver. HUGE win. My server is only 100 lines because its basically the type definitions and relationships schema plus some apollo boilerplate. Definitely check it out.
Amazing explanation about Neo4J Fireship. I love this type of short videos you build!
Neo4j paving the road for all graph databases through Fireship! Nice vid!
openCypher implementers include Redisgraph, anzograph, and of course Neo4j, but also a PostgreSQL extension called Apache AGE.
Native graph storages are great, but extensions like AGE can help relational users who are in need of graph analytics!
Together with a dashboard like PocketBase has this sounds so powerful 🔥
Neo4j is the best database I ever seen.
Seems much more intuitive and closer to the actual app logic than SQL or NoSQL DBs!
Very concise and a great intro to an in-depth exploration of Neo4j. Thanks mate!
I have neo4j form my first semester of masters in cs. It's queries are easy to understand.
Most underrated tech 100%
That’s awesome sir thank you for sharing this sir 👍👍👍 2:36
Having more than 2 years of Neo4J experience in the real world, I can say, Neo4J is an extremely difficult database to optimise. As your transactional data grows, your bad decisions in the previous queries creep up exponentially. Though really powerful, intuitive and fun, please be assured, you are playing with fire so be extremely careful. 😛
I've used it for a social network app and it was perfect for that use case
That stackoverflow example , i got to note it down for teaching relationship example to my jr devs
I loved Neo4j ... My issue back then was finding a cheap host for it.
you can self host it on GCP
Thank you for making this video. I can now send my boss and friends to it when they ask my what database I am using :D
Sounds really complicated! SQL works just fine! Do not fear table joins they are child's play!
I appreciate how you continued the Bob and Alice convention and threw in Chad 0:28
FINALLY, you cover something that I learned in school 5 years ago, have never and probably will never use and do not care about at the moment. This is rare.
Now the real challenge...trying to get the company to use it.
best explanation i've seen/watched/read. thank you!
Neo4j is the best graph DB out there
Soul: "false", Charisma: "-2". Poor Bob xD
Challenge: Show us how to do ML with neo4j in action!
You didn't mention it's speed compared to the normal relational database out there
I've read a book (available for free on their website) and I remember that for this query : get the friends of friends of friends of friends of friends of a user, it takes more than 30 seconds for mysql while less than a second for neo4j
What the actual hell is going on????? if there was this new way of storing data and using it for easy visualization how come it wasn't thought in universities? I was so waiting to know how all these technologies got better to do personalized ads. Such amazing, and I'm going to be trying it thank you fireship!
Now I can put Neo4J on my CV. Thank you Fireship
Was thinking about how popular you've become, and it dawned on me: you're an animated, modern, bite-sized Head First author :D Your humor and easy examples remind me of one of my favorite series.
Scammer alert!
Stackoverflow thing really hit hard
Man So is such bs
Am thoroughly impressed by neo4j
I built an open source knowledge graph builder using neo4j as the backend! It’s called twigslot. Glad to see this video :)
Looks suprisingly easy. Like the python of the SQL world.
Cypher queries can become pretty complex
The video is very helpful. Thank you and keep up the good work man.
When it comes to graph databases, I have just one condition: the query language has to be Cypher.
I've checked all of the databases listed on the OpenCypher site, and I decided to go with Memgraph.
I've never regretted that decision.
What a coincidence, was just looking into this last week and wanted video from this dude
OMG, Why did they name it so close to Log4J?
It was the early 2000s, can't blame us :) log4j might not have been out back then.
Well, another technology that I can add to my LinkedIn as ‘Expert-level’ thanks to me watching a 100-second video from Fireship!
I’m always so hyped on this but can never find a compelling enough project to utilize it in
Go over EdgeDB next, Ive never seen a single database thats better.
I'm with you even if it's still rather young.
You're saving lives here man, did you know that?
Love the video, love the content. Can you do Scala please :)
I'm gonna use sqlite for my app-
Fireship video comes out
Let's rewrite it for Neo4j.
well, at least this one you won't regret.
most mportant feature: you can model the six degrees of bacon quite easily with this db
i really like cypher and neo4j but working with spring data neo4j is an absolute nightmare
let's add it into my resume
Please make 100s for Directus
The syntax is like art to me
It would be nice to do RDF in 100 seconds. It's pretty much the same. Followed by OWL in 100 seconds.
always been interested in neo4j
Hang in there Bob!!
You finally made this video! 🙌
Alice & Chad Downvoted it, So Bob gave_up on his dream of programming 🤣🤣🤣 Love this guy.
Gods work what you've been doing Sir
My favourite DB getting some love!
Thanks to Neo4j, I can finally organize my fridge in 100 seconds!
I get PTSD when I see *4j
100 seconds Quarkus would be great. Interesting alternative to spring backends
@@zz-if1ic 💀
nowadays the name makes it sounds like a spiritual successor to log4j
I just think it's so funny that neo4j show you this exact video in the tutorial😂
Lol that StackOverflow example. Sounds about right.
I most give a 👍 for this : 0.28, and yes , people in stack overflow is always delete my question like a 💩
I've been using Neo4j for personal projects for about 5+ years now. Not sure why it isn't more popular. I would never go back to sql by choice. Someone needs to write an Express/React js & Neo4j version of Wordpress.
Can you make a video about RavenDB?
It's the best DB over all, it's a very logic database and has everything you always wanted.
I am convinced Google has been selling my Google history to Fireship. He can't keep posting about a technology the second I start using them.
As a StackOverflow user, I may confirm that questions sometimes get downvoted for no reason
this is my first time seeing you recommand a plateform ! was this video sponsored ?
GraphXR is a great web app to visualize graphs and has a Neo4j connector.