GREAT video. I expected you to just suggest what you use yourself. You didn't. You describe general experience, stuff that is actually important and useful regardless of the technology. Respect
Totally agree with "when it comes to database though, boring is good." I remember exactly Josh Long from Spring also mentioned about boring allows us to sleep peacefully at night, boring allows us to spend weekend with our family, boring allows us to go to holiday without worrying about work, I LOVE BORING! 😁
I'd like to add one more thing to the selection process: if you're tasked with designing a new system, make sure that you are absolutely sure about the actual load of the database and not the claimed one coming from the business stakeholders. Those guys tend to have overly ambitious goals (rather: dreams) about the growth of their businesses, which would make you choose a database technology and size the infrastructure under it that is a total overkill for a potentially much smaller problem. Besides that, great video, I love how down-to-earth your attitude is!
I'd rather have too much capacity than not enough. If I were in a position where my businesses' critical structures were bottlenecked by an overzealous IT guy, they might actually get strangled.
This channel knows me from inside out. I was fed with promises from PlanetScale and CockroachDB straight up for days and this drops off at the right moment.
Try explaining that to your idiot product owner with an MBA who only thinks in sprint cycles… it’d be so nice to have a job where they let engineers do actual engineering…
@@just_A_doctoryou fail to understand the point the writer was trying to make, it has nothing to do with credentials but rather how we approach problems in a philosophical manner as software engineers
Appreciate your content. I just cleared an interview where I was just asked one technical question regarding system design and your videos were big help.
love the fact that you say at 1:30... look t what you have and if how you using it is not broken/problem before jumping on band wagon to simply pick a new db... as if you don't know whats wrong/how it is wrong you are liable to just end with the same problem again...
Simpler decision tree: Postgres by default. A Postgres offshoot for specific use cases like TimescaleDB for time series, Yugabyte for distributed, etc. If and only if you have a requirement that cannot be solved natively by Postgres like temporal tables in MS SQL Server or MariaDB, then choose the other engine. NoSQL only when you know for a fact that no SQL engine can adequately handle your problem (and you've already tried).
I like your videos, including this one. However, I believe the title should be 'How To Choose The Next Database?' instead of 'How To Choose The Right Database?' because I was expecting to see which requirements fit with which database, and less how to migrate problems.
All of your videos are very well done. Thank you! Here is an idea for another video...show how to create these videos. A huge part of system design is "showing" the idea. It would be great to learn how you put these together, both from how they flow to the tools used for the awesome data visualization.
Only touches the surface for multiple problems (switching db, selecting db). By the way, I love your content, and I learn from it. Please continue the work.
Seeing the MS Access icon on here brings back some really bad memories. I worked for a company as pretty green sysadmin once that had a "homegrown" (in the sense that they paid to have it developed and didn't retain any source code) timekeeping software written in BASIC with an MS Access database as data persistence. Because Access has no real multi-user support, the software did a bunch of "clever" things to make locking work with multiple concurrent users. If there was ever an unexpected loss in connectivity to the database, at best the database lock was not removed and at worst the database was left in an inconsistent state and the lock was not removed. The databases needed a "Compact and Repair" operation run on it frequently, either for the reasons above or because the size of the database impacted performance, and that frequency accelerated the more data was in the database.
Portability (not bound to 1 cloud provider), Open-source, Battle tested, Horizontally scalable, Performant, Easy/Built-in Replication (high-availability), Powerful schema definition, Excelente querying/aggregation capabilities, ACID Compliant, Change streams, and Productive (dev speed) = MongoDB MongoDB has been the to-go choice on most of the projects that I've worked on recently. Other DBs that we've chosen often are: Redis and Neo4j. Postgres is perhaps the best SQL choice. But SQL/Relational no longer makes much sense in application/operational use cases. An "ALTER TABLE" is enough to take a whole application down.
Multicloud is a convenient lie we tell ourselves. That vendor lock-in is largely unavoidable and can only be mitigated. Migrating cloud providers is only marginally less challenging than migrating database engines.
@@JohnDoe-my5ip Portability also means being able to run it in a CI / CD / Dev / Local environnement. Good luck with that if you are using DynamoDB or some exclusive flavor of postgres.
To add a little nuance about transactional guarantees, it mostly does not remove one (or few) of the transactional guarantees. Is it more that it is untimely ACID. You might, on writing time, not be ACID, but untimely the database will become ACID. And the real question is, do you need ACID on write all the time for all the use cases? Maybe not.
I revisit this and learn something new every time. Also has more deep System design in his channel, every single one is a gem. awesome visuals along with awesome audio direction. . ❤ and 🙏 🙇🏾♂️ from Chennai 🇮🇳
Sharding an existing database also takes considerable effort though. Especially if it means the clients to the db need to piece together data from different shards.
All of your tutorial is very clear and easy to understand because of animation explanation.I always wonder which tool you use to create this animation? Could you please share?
Also, as a general piece of advice, unless you absolutely know, to 100% certainty, that a relational database won't work for your use-case, just stick to a relational database and spend a lot of thought into data modeling.
It takes a team. We have some talented editors for illustration and animation, with the help of tools like Adobe After Effects, Adobe Illustrator, etc. It takes many hours for each video.
@bytebytego These videos are great, thank you! Could you please add a video explaining the benefits of each major database and their drawbacks? Would love to see a comparative discussion on the options available from you. Thanks!
I heard many terms which I don't understand. E.g P99. Is there any other video where you talk about different parameters with which DB should be measured? Or with other db concepts?
Take the opportunity to search these terms and understand and make notes about them - while these guys are very helpful, you can't expected them to present this technical content at a completely ELI5 level.
We do plan to make some videos on system design fundamentals in the future. In the meantime, like others have suggested, write down the terms you don’t understand, do a bit of homework on your own, and don’t hesitate to come back for more questions. We are all beginners on some things and at some point. We have all been there. Hang in there.
This topic is often the litmus test for tech pundits. ... And they often fail. You passed. One of the things I hate is when they throw all "NoSQL" products in the same category. They are very different.
We have a private discord server for those who purchased our books or subscribed to our online course at bytebytego.com. The info to join is in the book and online course.
GREAT video. I expected you to just suggest what you use yourself. You didn't. You describe general experience, stuff that is actually important and useful regardless of the technology. Respect
Man, the wisdom in these videos is unmatched
Totally agree with "when it comes to database though, boring is good."
I remember exactly Josh Long from Spring also mentioned about boring allows us to sleep peacefully at night, boring allows us to spend weekend with our family, boring allows us to go to holiday without worrying about work, I LOVE BORING! 😁
I'd like to add one more thing to the selection process: if you're tasked with designing a new system, make sure that you are absolutely sure about the actual load of the database and not the claimed one coming from the business stakeholders. Those guys tend to have overly ambitious goals (rather: dreams) about the growth of their businesses, which would make you choose a database technology and size the infrastructure under it that is a total overkill for a potentially much smaller problem.
Besides that, great video, I love how down-to-earth your attitude is!
Amazing video💯.This wants me buy your book
I'd rather have too much capacity than not enough. If I were in a position where my businesses' critical structures were bottlenecked by an overzealous IT guy, they might actually get strangled.
This channel knows me from inside out. I was fed with promises from PlanetScale and CockroachDB straight up for days and this drops off at the right moment.
Totally agree with "when it comes to database though, boring is good.
The fancier the claim, the longer the disclaimer in the back.
"developers are naturally drawn to the new & shiny, like moths to a flame" 2:49 🤣😅
Very informative, sometimes companies just switch DB and later discovered the existing solution was still gold.
In summary, study is key
Try explaining that to your idiot product owner with an MBA who only thinks in sprint cycles… it’d be so nice to have a job where they let engineers do actual engineering…
As a junior project manager, your videos help me a lot
That's focus on Principles not technologies. Principles are timeless... technologies are not (and usually improvements from previous ones).
So u want me to listen to u and ignore the discord software architect???????????????????😉
@@just_A_doctoryou fail to understand the point the writer was trying to make, it has nothing to do with credentials but rather how we approach problems in a philosophical manner as software engineers
@@just_A_doctor😂 Yeah, here is one more from quora
This is expertise. To try everything for the current stack you have to make it work better before making decision to swap it for something else.
By far this is one of my favorite programming channels. Extremely easy to understand and great visual presentation.
Appreciate your content. I just cleared an interview where I was just asked one technical question regarding system design and your videos were big help.
love the fact that you say at 1:30... look t what you have and if how you using it is not broken/problem before jumping on band wagon to simply pick a new db... as if you don't know whats wrong/how it is wrong you are liable to just end with the same problem again...
Just here learning everything that I wanted to learn when going to university.
Simpler decision tree:
Postgres by default. A Postgres offshoot for specific use cases like TimescaleDB for time series, Yugabyte for distributed, etc.
If and only if you have a requirement that cannot be solved natively by Postgres like temporal tables in MS SQL Server or MariaDB, then choose the other engine.
NoSQL only when you know for a fact that no SQL engine can adequately handle your problem (and you've already tried).
A lot of the tricks here apply beyond choosing databases. A gem of a video😉
Best video on a channel so far, this real-life experience and wisdom is really important
So informative. Always dive right into the real contents without bs. Thank you!
This channel is a gem.
Agreed. Sometimes you do not need a new database platform. Sometimes you need to rewrite your application.
I like your videos, including this one. However, I believe the title should be 'How To Choose The Next Database?' instead of 'How To Choose The Right Database?' because I was expecting to see which requirements fit with which database, and less how to migrate problems.
Jeez, I am so grateful to come across your channel... We don't deserve such content and explanantion. Thank you!
All of your videos are very well done. Thank you!
Here is an idea for another video...show how to create these videos. A huge part of system design is "showing" the idea. It would be great to learn how you put these together, both from how they flow to the tools used for the awesome data visualization.
Only touches the surface for multiple problems (switching db, selecting db).
By the way, I love your content, and I learn from it. Please continue the work.
I love your "try to play with what you have" first ❤️
Good video as usual. Our rule of thumb is "Lame Is the New Cool" as far as database choice.
Just make sure that rule of thumb doesn’t lead you to Oracle’s sales department and you’re all good!
@@JohnDoe-my5ip Fair point. We like PostgreSQL.
I was expecting general info on how to choose database for new project but that works too, thank you :)
I have a hate/love relationship with this Guy.
I love how much I am learning every time I see any video. Also, I hate much much I don't know.
Mitigation before migration.
Boring is good.
Read "Limits" and "FAQ" in manual.
Understand the trade-offs.
Seeing the MS Access icon on here brings back some really bad memories. I worked for a company as pretty green sysadmin once that had a "homegrown" (in the sense that they paid to have it developed and didn't retain any source code) timekeeping software written in BASIC with an MS Access database as data persistence.
Because Access has no real multi-user support, the software did a bunch of "clever" things to make locking work with multiple concurrent users. If there was ever an unexpected loss in connectivity to the database, at best the database lock was not removed and at worst the database was left in an inconsistent state and the lock was not removed.
The databases needed a "Compact and Repair" operation run on it frequently, either for the reasons above or because the size of the database impacted performance, and that frequency accelerated the more data was in the database.
your video on RUclips is just like a gem!
Thank you. I like the initial idea "are we really need to change the DB?"
This channel is gold. Thank you.
Such an effective, yet simple video on selecting the right database. Thank you.
Thank you. This really helped me understand the complexities involved in migrating databases.
Thanks always for your insightful videos. They sure are a charitable contribution to our Industry.
This channel is a goldmine of info. Really great job!
Portability (not bound to 1 cloud provider), Open-source, Battle tested, Horizontally scalable, Performant, Easy/Built-in Replication (high-availability), Powerful schema definition, Excelente querying/aggregation capabilities, ACID Compliant, Change streams, and Productive (dev speed) = MongoDB
MongoDB has been the to-go choice on most of the projects that I've worked on recently.
Other DBs that we've chosen often are: Redis and Neo4j.
Postgres is perhaps the best SQL choice. But SQL/Relational no longer makes much sense in application/operational use cases. An "ALTER TABLE" is enough to take a whole application down.
Multicloud is a convenient lie we tell ourselves. That vendor lock-in is largely unavoidable and can only be mitigated. Migrating cloud providers is only marginally less challenging than migrating database engines.
Yeah zero downtime schema changes are essential.
@@JohnDoe-my5ip Portability also means being able to run it in a CI / CD / Dev / Local environnement. Good luck with that if you are using DynamoDB or some exclusive flavor of postgres.
To add a little nuance about transactional guarantees, it mostly does not remove one (or few) of the transactional guarantees. Is it more that it is untimely ACID. You might, on writing time, not be ACID, but untimely the database will become ACID. And the real question is, do you need ACID on write all the time for all the use cases? Maybe not.
Old is Gold. I use MYSQL for my software. Approaching 200K users and still runs under 1 second
very short and concise explanation. thanks for share it
Sharting is never acceptable 😂
In all seriousness, thanks for this great video sir.
I revisit this and learn something new every time. Also has more deep System design in his channel, every single one is a gem. awesome visuals along with awesome audio direction. . ❤ and 🙏 🙇🏾♂️ from Chennai 🇮🇳
Very informative. What software do you use to create animations for these videos? Looks thorough and stunning
Sharding an existing database also takes considerable effort though. Especially if it means the clients to the db need to piece together data from different shards.
Great point. It is really about tradeoffs, isn't it?
This is a wonderful video. Thanks I needed to watch this!
Thank you, sir, for sharing your knowledge in this video.
Thanks for the video. I do wish it was much more specific though when considering different use cases for system design interviews.
very good presentation and tips
thanks
Firebird SQL DB is a powerful and free versioning option
this is such a great video, it answered a lot of my questions.
All of your tutorial is very clear and easy to understand because of animation explanation.I always wonder which tool you use to create this animation? Could you please share?
whoa look at that new intro. Very nice.
Very cool video. You gave a lot of useful information in so short video. Thank you.
I want to design e-commerce web site. Which DB do you prefer?
Also, as a general piece of advice, unless you absolutely know, to 100% certainty, that a relational database won't work for your use-case, just stick to a relational database and spend a lot of thought into data modeling.
Great video. Love new animations. 👍
Couldn't agree more with this video!
What tools you are using to create these system design videos?
Very informative and useful video,thanks
how about scylladb?
i never use before, normaly use mongodb in project.
where do I find invitation link for the Slack channel mentioned in the video?
Wonderful video, thank you
Rare gem!! Thank you for the video
can you let us know how do you create your videos, i mean interactive diagrams that you use in the videos.
This is good information! I love your style and straight-forward presentation of facts.
Thank you for the feedback.
We try our best to respect our viewer's time investment in our contents.
Excellent advice
Fantastic video.
I expected comparisons between different database offerings in this video based on the title of the video. Good stuff though.
Many cases the most suitable db is flat file, because instead of millions of users it's just the dev and googlebot.
Great video.
Could you please tell me which tool you use to created these animated slides. Thanks
It takes a team. We have some talented editors for illustration and animation, with the help of tools like Adobe After Effects, Adobe Illustrator, etc. It takes many hours for each video.
thanks for precious advice!
I want to know the answer and think about this topic long long long time ago, thanks!
Thanks for your sharing
Do we have a tools where we can do the animation using code?
I see there is a discord server mentioned in the video. What's the invite link for that ?
Sounds like a meditation.
I almost closed my eyes while still following the words on the unconscious level.
superb !! you mentioned `join chat room for discussions` which chat room you refer to ?
Could you please make a video on Wide column vs column family vs columnar vs column oriented DB
sage advice, thanks.
I thought you'd devle into the intricacies into each and every one of them!
Lol that was really useful. The limits page is a jam indeed.
Thank you so much.
Anyone know the software he uses to make the diagrams?
@bytebytego These videos are great, thank you!
Could you please add a video explaining the benefits of each major database and their drawbacks? Would love to see a comparative discussion on the options available from you. Thanks!
Great content 👍🏾
I love the channel
What do you think about surrealdb?
thank you, its as very clarify.
When in doubt, postgres
it would be great to know if had references or papers
I heard many terms which I don't understand. E.g P99. Is there any other video where you talk about different parameters with which DB should be measured? Or with other db concepts?
Take the opportunity to search these terms and understand and make notes about them - while these guys are very helpful, you can't expected them to present this technical content at a completely ELI5 level.
We do plan to make some videos on system design fundamentals in the future.
In the meantime, like others have suggested, write down the terms you don’t understand, do a bit of homework on your own, and don’t hesitate to come back for more questions.
We are all beginners on some things and at some point. We have all been there. Hang in there.
@@ByteByteGo👍 thank you
database ~ boring is good
i love this
@bytebytego I think you could split the vidoes into chapters for easy access.
This topic is often the litmus test for tech pundits. ... And they often fail. You passed.
One of the things I hate is when they throw all "NoSQL" products in the same category. They are very different.
that was just beautiful
considered DB2 on zos or linux unix windows . We have all features we are discussing
Is the slack at 4:57 open to public?
We have a private discord server for those who purchased our books or subscribed to our online course at bytebytego.com. The info to join is in the book and online course.
how do you make such awesome presentation?