21 Comments
Aug 29Liked by Martin Joo

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

Expand full comment
author

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

Expand full comment
Aug 14Liked by Martin Joo

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.

Expand full comment
author

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.

Expand full comment

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.

Expand full comment
author

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.

Expand full comment

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.

Expand full comment
author

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.

Expand full comment
22 hrs agoLiked by Martin Joo

Super amazing article! Thank you for breaking it down in a very easy to understand manner.

Expand full comment
author

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

Expand full comment

++ System design with 100+ case studies - https://github.com/Coder-World04/Complete-System-Design

Expand full comment

Architecture evolution 101!

Simply put, Martin.

Expand full comment
author

Thank you! I tried to simplify everything in an easy-to-read article

Expand full comment
Aug 17Liked by Martin Joo

Great content

Expand full comment
author

Thank you! 🙏

Expand full comment
author

🔥 Another system design-related post came out yesterday:

https://computersciencesimplified.substack.com/p/designing-an-analytics-platform

Expand full comment
author

Since this post had some decent engagement (thank you all!), next week I'm going to publish another system design-related post.

Expand full comment

Thanks for your post! As a product manager working on GenAI product, I think system design definitely impact the scalability of the product.

Expand full comment
Aug 7·edited Aug 7

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?

Expand full comment
author

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.

Expand full comment

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

Expand full comment