Hey folks!👋 Want to have hands-on practice on these concepts? 🤓 Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
This is a really awesome series of Architecture. Really simple and clear and easy to understand the concepts. please continue this series. Thank you very much for your contribution to the community !!!! hats-off brother
Love it! Keep doing this sequence. This is a topic that I've become very interested in, and it's hard to find really quality content out there for beginners.
Thank you Christian for these awesome series! Your explanations are simple and on point. You brought information good enough to have an idea about the concept)))
Love this series already, this gives me a much broader view of how a big system looks like, very helpful for a junior backend engineer like me :) Hope to see more on this topic. Keep it up!
im a Business Analyst and this is perfect for me. Your explanations are simple, clear, and concise. May I ask for a video where you further explain the load balancer. Thank you.
Glad it was useful for you! Actually I don't have another video explaining more in detail the load balancing part. But maybe in the future. Glad it was useful!
Oh thank you Ndeto! I'm going to start new series soon in other areas but at one point will come back and continue with the architecture one :). Any specific topics your'd like me to cover?
@@ADevStory Yes! In considering software architecture, should I consider the programming language too? Or any modern language will have roughly the same maintainability/scalability/performance?
@@daymannovaes This is an interesting topic! I believe some languages are better suit for some use cases than others. For example Erlang was born already with scalability in mind. Others have better performance (specially when compiled like C/C++), or if they rely on the JVM. But in my experience, overall in terms of scalability and capacity to serve millions of users and requests, these concepts I present are more important than the specific language. If a modern language allows you to apply the concepts above then it will probably be fine for most use cases.
@@ADevStory It would be interesting to know how GATEWAYS are handled. How a front-end app (a mobile app por example) authenticates to the rest of the system in order to send a request
Hey Hi Christian , You have done agreat job. I am waiting for other parts for Software Architecture Intriduction series(part 4...., so on) , Please upload them
Hi! Glad you enjoyed the series! I kind of continued it with other videos, specially with Event Driven Architecture, but didn't want to call it part of the same series (but they relate closely). I will also keep publishing some others on software architecture. Any specific topic that you would like to watch?
@@ADevStory yeah I Understand that .Thanks. Would be great if you can cover few more topics from System design like Deciding factor for Database, , Proxies , etc
I acquired the knowledge I have been seeking for years in few minutes of three videos. Wow. I have always wanted to architect enterprise application. But I do not have a basic knowledge of DEVOPs
Glad you enjoyed it! Devops it's mostly for improving but no needed for developing architecting enterprise architectures. I can try to prepare some topics on devops too :)
Being a computer scientist is like being a parent with many children. You’re always having to come up with new names for your newborns and you’re always having to remember the names of your older children.
Thank you Ankit! I try to make short videos so not sure about how much in depth I can get 😅 but I will for sure expand it :). Any specific topic you might want/are curious about?
Why is the video creation been stopped on this subject? Seems like 5 months is a big gap.... Really need the next videos.... These are really awesome videos to the point.... Also I am interested in understanding how to choose the design patterns after we have decided the architecture.... Do we choose creational, structural & behavioral all at once in the beginning or does the behavioral set of design patterns work at controller layer inside logic layer.... I did see all your videos of architecture and if you could provide any link or any of your video to understand the same?
Thanks for watching! The gap has been mostly because its time consuming and I've been very busy at work :( I have published several videos after this one but on other areas. I'm currently working in one to expand the series so (hopefully 🤞) in the coming weeks you will get more content to watch and share :) In terms of design patterns you usually look at them (purist could say you "find them") when you are implementing feature, so the level is much more fine grained than the architecture. Architecture is like how you are going to build the house, where more or less will be the water pipes and the electric cables. Design patterns is more interior design let's say :)
Wouldn't it make sense to put a load balancer in front of the distributed cache? And, then also in front of the DB? Trying to figure out why most architectures will put a load balancer in some layers, but not others. Like it seems that as long as we have a distributed/replicated component, then we would need to have an LB in front of it. Maybe some diagrams don't include it because some components have load balancing as a part of it; for example, an API gateway could be doing its own load balancing to know which service node to go to.
Hello! That's a great question. Every layer could indeed have a load balancer. The main reason it often doesn't have it I'd say it's because of the nature of the state. For example, a relational database will totally be handled only with one "live"/"main" instance for writing and maybe some copy instances for read. Since there's always one instance to write to, a load balancer doesn't add much value. Another thing I can think of is sharding or the case of distributed cache where given the value you know exactly in which instance this info should be. Having said this, many services that have state (think on Amazon S3 or Google storage) typically have a load balancer for retrieve the data too. Hope it's clearer
Will direct you to this meme 😅twitter.com/SBinLondon/status/1413113782214266885?t=j4vRmgOJPqIiUng_NmWHVg&s=19 It depends a lot on the use case. And some times you might use a pattern that thought was good with the context you had and later discover that it wasn't actually the best. That's the good and bad of this career: is a bit science and a bit art. I give some additional tips in my video about design patterns if you want to get some general guidelines
End to End encryption like WhatsApp do they store anything in their server. If they encrypt that message then they obviously know how to decrypt. Does they do same like password hashing and salting. if they do so then the String object is going to take more size and it will affect the servers and response time will be slow.
According to WhatsApp, they don't decrypt the message faq.whatsapp.com/general/security-and-privacy/end-to-end-encryption/?lang=en. And there's actually no need to. You can still have a user identifier and the encrypted message string and just passing it around in the servers.
Hey folks!👋 Want to have hands-on practice on these concepts? 🤓
Try out CodeCrafters.io we have partnered and you can get 40% off 💸with this link: app.codecrafters.io/join?via=DevStory
They have great hands-on tutorials and easy to get up to speed with complex systems. Check them out!
This is a really awesome series of Architecture. Really simple and clear and easy to understand the concepts. please continue this series. Thank you very much for your contribution to the community !!!! hats-off brother
Oh thank you very much! Glad to hear you enjoyed it!
Any specific topic you would like me to cover in the architecture series?
@@ADevStory yes please add a message queue like kafka and how to deploy with AWS would be really helpful.
@@NomeshDeSilva awesome! Will add to my list to try to cover. Thanks!
@@ADevStory Thanks alot! Waiting to hear a good news :)
Love it! Keep doing this sequence. This is a topic that I've become very interested in, and it's hard to find really quality content out there for beginners.
Thank you!
Thanks for all your videos in this series, they're really concise and explanatory. Can't wait for the 4th video to come!!
Thank you! :)
one of the best software architecture videos on the web. ❤
Thank you!
I've just seen all the 3 videos of this series. Thanks a lot.
Glad you liked them!
Thank you Christian for these awesome series! Your explanations are simple and on point. You brought information good enough to have an idea about the concept)))
Thank you! Glad it was useful to you!
Love this series already, this gives me a much broader view of how a big system looks like, very helpful for a junior backend engineer like me :) Hope to see more on this topic. Keep it up!
Glad it was useful to you!
Excellent software design series real gem!🙏
Thank you! Glad you found it useful!
I loved it, awesome, simple and very clear. Great Quality content. Thanks very much for your contribution. Great work!
Thank you! Glad you liked it!
a missed treasure!! Your explanations are very simple and crystal clear.. Subscribed.. Good Work.. Would love to hear on integration architecture..
Glad You enjoyed it so much! 😁 What do you mean by integration architecture? Which specific parts?
My homework requires me to create a network and presentation, thank you for this video because I can provide more detail.
Glad it helped!
These series are gold!
Thank you!
im a Business Analyst and this is perfect for me. Your explanations are simple, clear, and concise. May I ask for a video where you further explain the load balancer. Thank you.
Glad it was useful for you! Actually I don't have another video explaining more in detail the load balancing part. But maybe in the future. Glad it was useful!
Waiting for the 4!!!
I really enjoyed this series. Looking forward to 4 as i check other resources
Oh thank you Ndeto! I'm going to start new series soon in other areas but at one point will come back and continue with the architecture one :). Any specific topics your'd like me to cover?
@@ADevStory Yes! In considering software architecture, should I consider the programming language too? Or any modern language will have roughly the same maintainability/scalability/performance?
@@daymannovaes This is an interesting topic! I believe some languages are better suit for some use cases than others. For example Erlang was born already with scalability in mind. Others have better performance (specially when compiled like C/C++), or if they rely on the JVM. But in my experience, overall in terms of scalability and capacity to serve millions of users and requests, these concepts I present are more important than the specific language.
If a modern language allows you to apply the concepts above then it will probably be fine for most use cases.
Looking forward to #4!
Awesome! Any topic that you'd like to hear about?
@@ADevStory It would be interesting to know how GATEWAYS are handled. How a front-end app (a mobile app por example) authenticates to the rest of the system in order to send a request
Hey Hi Christian , You have done agreat job. I am waiting for other parts for Software Architecture Intriduction series(part 4...., so on) , Please upload them
Hi! Glad you enjoyed the series! I kind of continued it with other videos, specially with Event Driven Architecture, but didn't want to call it part of the same series (but they relate closely). I will also keep publishing some others on software architecture.
Any specific topic that you would like to watch?
@@ADevStory yeah I Understand that .Thanks. Would be great if you can cover few more topics from System design like Deciding factor for Database, , Proxies , etc
Sure thing! Thanks for the suggestions!
I acquired the knowledge I have been seeking for years in few minutes of three videos. Wow. I have always wanted to architect enterprise application. But I do not have a basic knowledge of DEVOPs
Glad you enjoyed it! Devops it's mostly for improving but no needed for developing architecting enterprise architectures.
I can try to prepare some topics on devops too :)
Great Videos
Thabks!
Awesome content!
Thanks! Glad you enjoyed it!
Great video! Really helpful
Glad you liked it! Thanks!
Really nice videos! thanks. I hate distributed cache so much!!!!, but it is a needed pain sometimes.
Totally agree! And thanks!
Never seen a video on YT that doesn't have a single downvote.. then I saw this
:)
Can you make a video for each pattern like even based or SOA and explain it with practical example of a system that suits for each of the pattern?
Adding to my list of planned topics :)
+1
ty
Good stuff!
Thanks!
Being a computer scientist is like being a parent with many children. You’re always having to come up with new names for your newborns and you’re always having to remember the names of your older children.
🤣
can you please add more in depth videos or a bigger series .. btw loved your videos
Thank you Ankit! I try to make short videos so not sure about how much in depth I can get 😅 but I will for sure expand it :). Any specific topic you might want/are curious about?
@@ADevStory A more in depth software architecture pattern if possible. Happy to learn from you. keep doing great work you rock!!!
@@ankitsharan15 sure thing! And thanks for the kind words!
Why is the video creation been stopped on this subject? Seems like 5 months is a big gap.... Really need the next videos.... These are really awesome videos to the point....
Also I am interested in understanding how to choose the design patterns after we have decided the architecture.... Do we choose creational, structural & behavioral all at once in the beginning or does the behavioral set of design patterns work at controller layer inside logic layer....
I did see all your videos of architecture and if you could provide any link or any of your video to understand the same?
Thanks for watching! The gap has been mostly because its time consuming and I've been very busy at work :( I have published several videos after this one but on other areas.
I'm currently working in one to expand the series so (hopefully 🤞) in the coming weeks you will get more content to watch and share :)
In terms of design patterns you usually look at them (purist could say you "find them") when you are implementing feature, so the level is much more fine grained than the architecture. Architecture is like how you are going to build the house, where more or less will be the water pipes and the electric cables. Design patterns is more interior design let's say :)
Wouldn't it make sense to put a load balancer in front of the distributed cache? And, then also in front of the DB? Trying to figure out why most architectures will put a load balancer in some layers, but not others. Like it seems that as long as we have a distributed/replicated component, then we would need to have an LB in front of it. Maybe some diagrams don't include it because some components have load balancing as a part of it; for example, an API gateway could be doing its own load balancing to know which service node to go to.
Hello! That's a great question. Every layer could indeed have a load balancer. The main reason it often doesn't have it I'd say it's because of the nature of the state.
For example, a relational database will totally be handled only with one "live"/"main" instance for writing and maybe some copy instances for read. Since there's always one instance to write to, a load balancer doesn't add much value. Another thing I can think of is sharding or the case of distributed cache where given the value you know exactly in which instance this info should be.
Having said this, many services that have state (think on Amazon S3 or Google storage) typically have a load balancer for retrieve the data too.
Hope it's clearer
How do I decide, what Design Pattern I have to use?
Will direct you to this meme 😅twitter.com/SBinLondon/status/1413113782214266885?t=j4vRmgOJPqIiUng_NmWHVg&s=19
It depends a lot on the use case. And some times you might use a pattern that thought was good with the context you had and later discover that it wasn't actually the best. That's the good and bad of this career: is a bit science and a bit art.
I give some additional tips in my video about design patterns if you want to get some general guidelines
Wow
End to End encryption like WhatsApp do they store anything in their server. If they encrypt that message then they obviously know how to decrypt. Does they do same like password hashing and salting.
if they do so then the String object is going to take more size and it will affect the servers and response time will be slow.
According to WhatsApp, they don't decrypt the message faq.whatsapp.com/general/security-and-privacy/end-to-end-encryption/?lang=en.
And there's actually no need to. You can still have a user identifier and the encrypted message string and just passing it around in the servers.
What is BE in this case?
It stands for Back-End
You are too fast, try to explain it slowly
Will do! Thanks for the feedback!
he aint fast, the peace at which he speaks is correct