This is the best article I’ve seen in a while, as a software developer looking to level up my systemization skills, this article have answered and confirmed a lot of questions I had in mind when it comes to designing systems
Well, you can imagine an object storage something like "Google Drive" It's a centralized storage where you can put files and folders of any kind.
If you're using Laravel, it's like your local storage folder. But it's available by all servers since it's hosted by Amazon or some other cloud provider.
Use cases: basically any project that needs to store files. Profile pictures of users, images or videos of social network posts, etc. Any file can be uploaded to S3. You need this if you have more than one server.
I understand it, I thought it was a little more oriented towards a "caching" layer between the API and the DB, sometimes we see strong requests with complicated queries.
Thank you for sharing. I’ve understood most of the methods mentioned in your article, but have only implemented some of them in my projects. It becomes more complicated when adding multitenancy into the system design, especially when we are talking about database control being on the cloud or on the ‘client side.’ Looking forward to your upcoming article on microservices.
Thank you very much! More content is coming about microservices. And yeah, multitenancy can be complicated, I'm trying to cover it as well in the future.
This is truly the best 101 article I found regarding system design. I've been trying to read about system design for a while, but most of the content I've found were overwhelming and frustrating. This has been eye opening, thank you very much.
Thanks for the great article! Would be interested to learn more on how to scale worker servers horizontally while using Laravel Horizon. Current assumption is that Horizon doesn't support that. Or maybe it does?
Sorry, I don't have production experience with Horizon. But I believe horizontally scaling workers has nothing to do with it. Right now, you have one worker server and you start php artisan horizon, right? If you want to scale, you can have 10 servers and run php artisan horizon on each of them.
As always great content Martin. How to avoid database bottleneck specially when you have write heavy multiple jobs to run in parallel. Only Having multiple worker is not going to help, it can bottleneck the database
This is the best article I’ve seen in a while, as a software developer looking to level up my systemization skills, this article have answered and confirmed a lot of questions I had in mind when it comes to designing systems
Thank you very much! It's so good to hear that.
Check out this article too. It's about designing an analytics platform: https://computersciencesimplified.substack.com/p/designing-an-analytics-platform
Hi Martin, thank you very much for the content, I would like to know a little more about that object storage layer, some use cases for example.
Hey Carlos!
Well, you can imagine an object storage something like "Google Drive" It's a centralized storage where you can put files and folders of any kind.
If you're using Laravel, it's like your local storage folder. But it's available by all servers since it's hosted by Amazon or some other cloud provider.
Use cases: basically any project that needs to store files. Profile pictures of users, images or videos of social network posts, etc. Any file can be uploaded to S3. You need this if you have more than one server.
I understand it, I thought it was a little more oriented towards a "caching" layer between the API and the DB, sometimes we see strong requests with complicated queries.
No. For that, you can use a simple cache such as Redis. You can store the result of a long-running query for a period of time.
Thank you for sharing. I’ve understood most of the methods mentioned in your article, but have only implemented some of them in my projects. It becomes more complicated when adding multitenancy into the system design, especially when we are talking about database control being on the cloud or on the ‘client side.’ Looking forward to your upcoming article on microservices.
Thank you very much! More content is coming about microservices. And yeah, multitenancy can be complicated, I'm trying to cover it as well in the future.
great article
Wow. This is so simple to read and remember. Thanks a lot.
Thank you very much! I think lots of system design articles are overcomplicated so I wanted to write something simple but useful.
Thanks for this!
This is truly the best 101 article I found regarding system design. I've been trying to read about system design for a while, but most of the content I've found were overwhelming and frustrating. This has been eye opening, thank you very much.
wow, thank you very much! It's good to hear that because that was my exact goal with this article. Simple and easy to understand :)
You've achieved the goal then. Hehe
Super amazing article! Thank you for breaking it down in a very easy to understand manner.
Thank you very much, I'm glad you liked it! I published some other system design-related posts. Maybe they interest you as well.
Designing an analytics platform: https://computersciencesimplified.substack.com/p/designing-an-analytics-platform
Load balancers 101: https://computersciencesimplified.substack.com/p/designing-an-analytics-platform
++ System design with 100+ case studies - https://github.com/Coder-World04/Complete-System-Design
Architecture evolution 101!
Simply put, Martin.
Thank you! I tried to simplify everything in an easy-to-read article
Great content
Thank you! 🙏
🔥 Another system design-related post came out yesterday:
https://computersciencesimplified.substack.com/p/designing-an-analytics-platform
Since this post had some decent engagement (thank you all!), next week I'm going to publish another system design-related post.
Thanks for your post! As a product manager working on GenAI product, I think system design definitely impact the scalability of the product.
Thanks for the great article! Would be interested to learn more on how to scale worker servers horizontally while using Laravel Horizon. Current assumption is that Horizon doesn't support that. Or maybe it does?
Sorry, I don't have production experience with Horizon. But I believe horizontally scaling workers has nothing to do with it. Right now, you have one worker server and you start php artisan horizon, right? If you want to scale, you can have 10 servers and run php artisan horizon on each of them.
As always great content Martin. How to avoid database bottleneck specially when you have write heavy multiple jobs to run in parallel. Only Having multiple worker is not going to help, it can bottleneck the database