...then please correct the video to say "the design primer" instead of "open source primer". Google them both - "open source primer" does not contain the things you show in the video but "the design primer" does.
I can also recommend the book "Distributed Systems" by Andrew S. Tanenbaum. Its main topic is not system design but it also explains the problems dealing with such systems. :)
Once you start thinking like this... you can fall into the trap of overfitting on future concerns when most of the time it's better to start with a laughably simple system that doesn't scale but actually solves the customer problem (which may take multiple attempts when it turns out you haven't fully figured out the customer problem yet). Then, if you're lucky, customers like it and you can tackle the "problem of success" aka scalability. Of course, sometimes you're working on a team that already knows exactly how much traffic a system is going to get, in which case go nuts. But only if you need it.
I can see how myself would fall into this trap.. Thanks for the headsup. I can really be worrying too much about the 'future scalibility' but it's definitely better to just put out what solves the problems first.
I don't quite see the connection to DevOps. There you also need to worry about complex systems but timely response, resource management is usually not that critical so the system design is a bit less critical too compared to a production system.
I really love your vids! I stumbled upon you yesterday searching about different programming languages on CZcams and found you, and still you have the best dev content I’ve ever found by quality, thank you so much!
This is exactly the thing i'm trying to figure out right now. Cause the program i'm having troubles now, doesn't have hundreds of modules, but for me as a novice it's kinda hard to follow the exact execution path. And part of it seems to fail, and it makes understanding it even harder
but making a system super scalable just increases scope, so imo its better to make a simple system that can be modified when it needs to be scaled up. eg just having something really simple: mariadb and your app on one vm. if you need to scale up, you can do lots of things: 1. separate db and app into 2 vms sharing a vlan 2. to scale up again, duplicate your app onto multiple more vms, and set up a load balancer 3. if you need to scale up fron one database, modify your project to allow spreading users between multiple databases
99% developers don't need to worry about system design. You can hardly find ANY sofrware engineers who ever had to build a large scalable system.... It can take hundreds of people, years to build a single system and those people are super rare ...like suuuper rare.
You can't learn/practice scaling if you don't first learn other aspects of making apps and face scaling issues after having published the app either yourself or when working in a company, I think that's just the harsh truth, there is an order you can't break
I think beside the coding in depth expertise, deep knowledge and experience in system design defers a software engineer from a developer. This is jst my opinion
Instead of asking us how to make every kth character in a string of length n do the hokey-pokey in logarithmic time, this is what most interviews should be about.
Ball deep in this. By accident! Architecture design is about to matter so much in the ai space and it’s all systems engineering. As a mech. I apologise
not the cursed boop sound 😭 you could disable it in your kitty.conf with `enable_audio_bell no` (that is IF you're not comfortable with it. personally i find it annoying)
before moving on to system design, people should know basic principles. i hate people who try to sell this without themselves, knowing nothing about SOLID or Gang of Four. i hope you are one of them.
If i apply for a job as a developer.. i don't think of designing whole projects.. i am there to develop. That's it... nothing else. Developer != Software Engineer != Software Designer
@@zchot Oh don't get me wrong, i am a software-engineer and therefor get paid as such... i just don't like that job titles get mixed up more and more. I actually had an interview yesterday for a side-job as developer. You know.. quick $ for just coding a bit but noo.. they actually searched a fullstack software-engineer but still used the title developer as the job description. For me personally it's a lot more energy consuming to get a request, design a feature, write a proposal, get approval or make changes to the proposal and than start developing it instead of just getting the proposal and develop it. Huuuuuge difference for me.
“System Design Primer” on GitHub 👩💻
Sorry, no links allowed in comments ☹️
Why?
CZcams disallowed it cuz of scammers@@adrian333dev
@@adrian333devProbably to avoid bots and scammers
...then please correct the video to say "the design primer" instead of "open source primer". Google them both - "open source primer" does not contain the things you show in the video but "the design primer" does.
what's the owner name? There's several "system design primers"
I can also recommend the book "Distributed Systems" by Andrew S. Tanenbaum. Its main topic is not system design but it also explains the problems dealing with such systems. :)
thats a great book btwn :)
His book on operating systems is great too
Once you start thinking like this... you can fall into the trap of overfitting on future concerns when most of the time it's better to start with a laughably simple system that doesn't scale but actually solves the customer problem (which may take multiple attempts when it turns out you haven't fully figured out the customer problem yet). Then, if you're lucky, customers like it and you can tackle the "problem of success" aka scalability.
Of course, sometimes you're working on a team that already knows exactly how much traffic a system is going to get, in which case go nuts. But only if you need it.
This 👆
I can see how myself would fall into this trap.. Thanks for the headsup. I can really be worrying too much about the 'future scalibility' but it's definitely better to just put out what solves the problems first.
True engineers may appreciate DevOps, but no one else will. It's like good infrastructure. People take it for granted.
U: donnemartin
R: system-design-primer
yep these diagrams are stolen from that repo. this guy is a fraud. period.
This is the first time the Microservice Architecture ever made sense... I never understood why... This was great.
Oh yeah, my favorite devtuber ❤
The line 'You start to respect DevOps engineers' caught me. haha! ❤️
I don't quite see the connection to DevOps. There you also need to worry about complex systems but timely response, resource management is usually not that critical so the system design is a bit less critical too compared to a production system.
I really love your vids! I stumbled upon you yesterday searching about different programming languages on CZcams and found you, and still you have the best dev content I’ve ever found by quality, thank you so much!
Once you start thinking like this, you'll start to respect devops engineers 🥰
You should have all of these memorized with no need to reference anything
I'm learning about this now, and using an imaginary mmo as learning project. Super interesting!
This is exactly the thing i'm trying to figure out right now. Cause the program i'm having troubles now, doesn't have hundreds of modules, but for me as a novice it's kinda hard to follow the exact execution path. And part of it seems to fail, and it makes understanding it even harder
but making a system super scalable just increases scope, so imo its better to make a simple system that can be modified when it needs to be scaled up.
eg just having something really simple: mariadb and your app on one vm. if you need to scale up, you can do lots of things:
1. separate db and app into 2 vms sharing a vlan
2. to scale up again, duplicate your app onto multiple more vms, and set up a load balancer
3. if you need to scale up fron one database, modify your project to allow spreading users between multiple databases
no, the answer is load balancer, throw more load balancer until the problem solves itself
Thank you, will definitely come in handy! :D
99% developers don't need to worry about system design.
You can hardly find ANY sofrware engineers who ever had to build a large scalable system....
It can take hundreds of people, years to build a single system and those people are super rare ...like suuuper rare.
Mostly, its luck and opportunity/chance to build system from scratch.
Great visualization!
Could you add the same short with Frontend System Design?
You can't learn/practice scaling if you don't first learn other aspects of making apps and face scaling issues after having published the app either yourself or when working in a company, I think that's just the harsh truth, there is an order you can't break
I think beside the coding in depth expertise, deep knowledge and experience in system design defers a software engineer from a developer. This is jst my opinion
I like these repos vids
Yeah chaos is right Lewis the author really is so adept at his craft it’s almost like he’s says the opposite of what he means to wreak havoc
Yeah, am really connecting to what you saying
Thank you Lewis 🎖️
Also don't do any of that if you get 500 visitors per day
Beware of Premature optimization
Nice outro :)
Where is the .exe file
lmfao
Good advice.
The video I needed.
I’m serving images with HTTPS thank you very much
Sounds like fun!
this is for web development only, not general software
Instead of asking us how to make every kth character in a string of length n do the hokey-pokey in logarithmic time, this is what most interviews should be about.
Thank you
Ball deep in this. By accident! Architecture design is about to matter so much in the ai space and it’s all systems engineering. As a mech. I apologise
why is it only CRUD system design? is that all we do in software engineering
that is complicated, I'm an electronics engineer, so I would know
Do you use linux on a daily basis. Or just use windows?
not the cursed boop sound 😭
you could disable it in your kitty.conf with
`enable_audio_bell no`
(that is IF you're not comfortable with it. personally i find it annoying)
before moving on to system design, people should know basic principles. i hate people who try to sell this without themselves, knowing nothing about SOLID or Gang of Four. i hope you are one of them.
😍
i see that ring 👀
I just pay someone else to deal with this headache
If i apply for a job as a developer.. i don't think of designing whole projects.. i am there to develop. That's it... nothing else. Developer != Software Engineer != Software Designer
Ai will eat you in like the coming 5 years if you dont get a hold of software architecture and system design my friend
@@zchot Oh don't get me wrong, i am a software-engineer and therefor get paid as such... i just don't like that job titles get mixed up more and more. I actually had an interview yesterday for a side-job as developer. You know.. quick $ for just coding a bit but noo.. they actually searched a fullstack software-engineer but still used the title developer as the job description. For me personally it's a lot more energy consuming to get a request, design a feature, write a proposal, get approval or make changes to the proposal and than start developing it instead of just getting the proposal and develop it. Huuuuuge difference for me.
That's fine. As a lead engineer, I have to work with architects to design our new systems.
Lets use a load balancer and complicated infrastructure for my two users... 😅
Just kidding, but honestly just KISS
Hows this got anything to do with devops.... Devops forms a really tiny part of it
Using Anki to learn system design...why not
Just run your local Amazon and become millionaire.
Link?
👀
FYI: primer is pronounced "primmer" (short i)
Repo owner name?
U: donnemartin
R: system-design-primer
likes and dislikes deactivated? uhmm 🤔 imagine why
thats a yt thing since yerar?
Why is your laugh nervous?
Or just use vercel haha
a
B I N A R Y S P A C E P A R T I T I O N I N G
I wonder if anyone got that?
(Edited)funny