Instagram System Design
<p>If you are on social media, then there is a high probability that you have used instagram at-least once in your life. Have you ever wondered how the app works so flawlessly and if you have to build a similar app how will you proceed? In this article we will be covering how we can design an app similar to instagram.</p>
<h1>Requirements</h1>
<h2>Functional</h2>
<ol>
<li>User should be able to upload an image/video on his profile.</li>
<li>User should be able to see uploads of other users followed the user.</li>
<li>User should be able to follow other users.</li>
<li>User can perform search for an image/video based on title.</li>
</ol>
<h2>Non Functional</h2>
<ol>
<li>The user feed latency should be low.</li>
<li>We are okay with eventual consistency as uploaded image can be shown to another user after few milliseconds.</li>
<li>Our app needs to be highly available.</li>
<li>The Data store we will be using for storing image/video should be reliable and data should not be lost.</li>
</ol>
<h2>Additional Requirements</h2>
<ol>
<li>Users can add tags to a photo/video.</li>
<li>Users can put comments on a post.</li>
<li>Users can search photo based on tags.</li>
</ol>
<h1>Capacity Estimation</h1>
<h2>Traffic estimation</h2>
<p>Let’s assume we have 500 million daily active users and we get roughly 5 million uploads per day.</p>
<p>Total number of uploads ~ 57 per sec</p>
<h2>Storage estimation</h2>
<p>Let’s assume average upload size of 200KB.</p>
<p>Then total storage required for 1 day is 200*5 ~ 1 TB per day.</p>
<p><a href="https://nikhilgupta1.medium.com/instagram-system-design-f62772649f90">Click Here</a></p>