Traffic Estimator in system design

Introducing System Design Traffic Estimator

  • Author : Sunil Ravulapalli
  • Date : 31st Oct, 2023

Introduction

All System design diagrams are incomplete without an approximate estimation of the resources required to build the system. One of the very common estimates in a traffic estimate is the size of the data that is going to be stored in the system, the network bandwidth required to support the system and the amount of cache required to support the read of the system.

Today we released a new feature in SystemDraw that allows you to estimate the traffic of your system design diagram. Just like other nodes, this is a drag-and-drop node that can be added to your system design diagram.

It has three input parameters:

  • Number of Writes per month
  • Number of Reads per month
  • Size per Request
Creation of traffic estimator with system draw

For example, if you are designing Instagram, you can probably estimate the number of writes per month to be 1 billion, the number of reads per month to be 10 billion and the size per request to be 1MB(1000000 bytes).

Writes

By using the number of writes per month and the size of the write we estimate the storage required for the system. We can also estimate the write network bandwidth required for the system using the same parameters.

Writes/second = (Writes Per Month)/(30 * 24 * 3600)

Storage for 5 years(tera bytes) = (Writes Per Month) * 12 months * 5 years * (Size of the Write in Bytes)/(1000 * 1000 * 1000 * 1000)

Bandwidth(writes) Kb/s = (Writes Per Month)/(30 * 24 * 3600) * (Size of the Write in Bytes)/1000

Reads

By using the reads per month and the size of the request we can estimate the cache size required for the system. A good rule of thumb is to use 20% of the total reads as the cache size. We can also estimate the read bandwidth required for the system using the same parameters.

Reads/second = (Reads per month)/(30 days * 24 hours * 3600 seconds)

No. of requests to cache per day = (Reads per second) * 3600 seconds * 24 hours

Cache Size (tera bytes) = 0.2 * (No. of requests to cache per day) * (Size of the Read in Bytes)/(1000 * 1000 * 1000 * 1000)

Bandwidth(reads) Kb/s = (Reads per second) * (Size of the Read in Bytes)/1000

Get Updates

Sign up and receive the latest updates via email.