System Design Codex

System Design Codex

Share this post

System Design Codex
System Design Codex
5 Strategies for Read-Heavy Systems
Copy link
Facebook
Email
Notes
More
User's avatar
Discover more from System Design Codex
The best place to learn practical System Design with concepts and case studies
Over 21,000 subscribers
Already have an account? Sign in

5 Strategies for Read-Heavy Systems

Build a high-performance system

Saurabh Dashora's avatar
Saurabh Dashora
Apr 30, 2024
24

Share this post

System Design Codex
System Design Codex
5 Strategies for Read-Heavy Systems
Copy link
Facebook
Email
Notes
More
8
3
Share

There’s a higher probability of you working on a read-heavy system.

Why?

Because read-heavy systems are far more common than write-heavy systems. Even as a user, you see them all the time.

  • Customers view dozens of products on websites like Amazon before actually buying one and triggering the write requests.

  • Most users scroll through hundreds of social media posts every day and post only one or two. Some don’t post at all.

In this post, I’ll discuss 5 strategies to build high-performance read-heavy systems:

1 - Perform Database Indexing

Indexing your database tables is the absolute must-do activity for optimizing reads.

With proper indexes that are tailored to the common query patterns of your application, your queries will be a lot more efficient and fast.

Moreover, indexing can reduce the need for other strategies for a long time.

You can play around with the diagram on Eraser.io

2 - Database Replication with Read Replicas

Database replication is a technique in which you replicate data from the main database to other secondary databases.

These replicas are copies of the primary database that can handle read requests.

With more replicas, you can distribute read requests to improve the performance of the reads. It also increases the durability of the data.

However, you need to deal with scenarios related to replication lag and eventual consistency in the replicas.

You can play around with the diagram on Eraser.io

3 - Caching

Caching is a great choice for read-heavy systems where the data doesn’t change much after it’s created.

With a good caching strategy, you can significantly reduce the load on your database.

You can play around with the diagram on Eraser.io

4 - Content Delivery Networks

While caching is good, you can also take it to the next level by investing in a Content Delivery Network or CDN.

With a CDN, you can cache and serve static content closer to the end users and reduce read latency. You can also support the geographic distribution of data with a CDN.

You can play around with the diagram on Eraser.io

5 - Load Balancing

While it’s possible to spin up multiple replicas, cache instances, or servers to handle the reads, you also need to ensure fair distribution of traffic to these instances.

Using a load balancer is the key to implementing an efficient distribution of workload.

Plus, it also increases the availability of your system with health checks that ensure that traffic is routed only to healthy instances.

You can play around with the diagram on Eraser.io

So - which other strategies do you think can help with read-heavy systems?

Leave a comment


Eraser Professional Plan Free Trial (Affiliate)

As you all know, I use the Eraser for drawing all the diagrams in this newsletter.

Eraser is a fantastic tool that you can use as an all-in-one markdown editor, collaborative canvas, and diagram-as-code builder.

And now you can get one month free on their Professional Plan or a $12 discount if you go for the annual plan. The Professional Plan contains some amazing features like unlimited AI diagrams, unlimited files, PDF exports, and many more.

Click the below button to head over to Eraser and at the time of checkout, use the promo code “CODEX” to get this offer now.

Get Free Trial


Shoutout

Here are some interesting articles I read this week:

  • 4 essential steps to take before making any technical decision by

    Petar Ivanov

  • Practical learning strategies for engineers by

    Nicola Ballotta

  • How to give code reviews without getting burned by

    Akos

  • The CAP Theorem needed an update by

    Raul Junco


That’s it for today! ☀️

Enjoyed this issue of the newsletter?

Share with your friends and colleagues.

Share

See you later with another value-packed edition — Saurabh.

Ashwani Yadav's avatar
Madan Kumar Y's avatar
Harshul Jain's avatar
Raul Junco's avatar
Nicola Ballotta's avatar
24 Likes∙
3 Restacks
24

Share this post

System Design Codex
System Design Codex
5 Strategies for Read-Heavy Systems
Copy link
Facebook
Email
Notes
More
8
3
Share

Discussion about this post

User's avatar
Akos Komuves's avatar
Akos Komuves
May 9

I completely missed this one! Great strategies, as always, I love your diagrams. What do you use to create them?

Thanks for the shoutout!

Expand full comment
Like (1)
Reply
Share
1 reply by Saurabh Dashora
Raul Junco's avatar
Raul Junco
May 2, 2024Edited

Thanks for the shoutout, Saurabh!!!

Expand full comment
Like (1)
Reply
Share
1 reply by Saurabh Dashora
6 more comments...
8 Must-Know Distributed System Design Patterns
Distributed Systems are important for building scalable, fault-tolerant, and highly available systems.
Jan 21 • 
Saurabh Dashora
92

Share this post

System Design Codex
System Design Codex
8 Must-Know Distributed System Design Patterns
Copy link
Facebook
Email
Notes
More
9
15 Must-Know Elements of System Design
Key Lego Blocks...
Feb 4 • 
Saurabh Dashora
89

Share this post

System Design Codex
System Design Codex
15 Must-Know Elements of System Design
Copy link
Facebook
Email
Notes
More
10
8 Must-Know Strategies to Build Scalable Systems
Don't ignore scalability
Dec 10, 2024 • 
Saurabh Dashora
78

Share this post

System Design Codex
System Design Codex
8 Must-Know Strategies to Build Scalable Systems
Copy link
Facebook
Email
Notes
More
14

Ready for more?

© 2025 Saurabh Dashora
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More

Create your profile

User's avatar

Only paid subscribers can comment on this post

Already a paid subscriber? Sign in

Check your email

For your security, we need to re-authenticate you.

Click the link we sent to , or click here to sign in.