<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Omja sharma</title>
    <description>The latest articles on Forem by Omja sharma (@omjasharma).</description>
    <link>https://forem.com/omjasharma</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868170%2F57c5bdca-470d-4f1b-9b53-10d996d4bb15.jpg</url>
      <title>Forem: Omja sharma</title>
      <link>https://forem.com/omjasharma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/omjasharma"/>
    <language>en</language>
    <item>
      <title>Rate Limiter Explained: Everything You Need in 5 Minutes</title>
      <dc:creator>Omja sharma</dc:creator>
      <pubDate>Fri, 10 Apr 2026 08:54:27 +0000</pubDate>
      <link>https://forem.com/omjasharma/rate-limiter-explained-everything-you-need-in-5-minutes-49mi</link>
      <guid>https://forem.com/omjasharma/rate-limiter-explained-everything-you-need-in-5-minutes-49mi</guid>
      <description>&lt;p&gt;What happens if one user sends 10,000 requests per second to your API?&lt;/p&gt;

&lt;p&gt;Your system crashes.&lt;br&gt;
Unless you have a rate limiter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffhdizsoce5oc8or6n5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fffhdizsoce5oc8or6n5g.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Rate Limiting?
&lt;/h2&gt;

&lt;p&gt;Rate limiting controls how many requests a user can make in a given time.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
100 requests per minute per user&lt;br&gt;
If the limit is exceeded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;requests are blocked&lt;/li&gt;
&lt;li&gt;or delayed&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;Without rate limiting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs get overloaded&lt;/li&gt;
&lt;li&gt;systems crash under traffic spikes&lt;/li&gt;
&lt;li&gt;abuse (spam, brute force) increases&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Approaches
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Fixed Window
&lt;/h3&gt;

&lt;p&gt;Limit requests in a fixed time window.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
100 requests per minute&lt;br&gt;
Problem:&lt;br&gt;
Burst traffic at window edges&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Sliding Window
&lt;/h3&gt;

&lt;p&gt;Tracks requests over a rolling time window.&lt;/p&gt;

&lt;p&gt;Better accuracy than fixed window&lt;br&gt;&lt;br&gt;
Slightly more complex&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Token Bucket
&lt;/h3&gt;

&lt;p&gt;Tokens are added at a fixed rate.&lt;/p&gt;

&lt;p&gt;Each request consumes a token.&lt;/p&gt;

&lt;p&gt;If no tokens:&lt;br&gt;
request is rejected&lt;/p&gt;

&lt;p&gt;Best for handling bursts&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Leaky Bucket
&lt;/h3&gt;

&lt;p&gt;Requests are processed at a constant rate.&lt;/p&gt;

&lt;p&gt;Extra requests are queued or dropped.&lt;/p&gt;

&lt;p&gt;Good for smoothing traffic&lt;/p&gt;




&lt;h2&gt;
  
  
  How It’s Implemented
&lt;/h2&gt;

&lt;p&gt;Typical setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API Gateway or middleware&lt;/li&gt;
&lt;li&gt;Redis for storing counters&lt;/li&gt;
&lt;li&gt;Key = user/IP&lt;/li&gt;
&lt;li&gt;Value = request count&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis is used because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fast&lt;/li&gt;
&lt;li&gt;supports atomic operations&lt;/li&gt;
&lt;li&gt;works well at scale&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Trade-offs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;accuracy vs performance
&lt;/li&gt;
&lt;li&gt;memory usage
&lt;/li&gt;
&lt;li&gt;handling bursts
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No single approach is perfect.&lt;/p&gt;




&lt;h2&gt;
  
  
  Where It’s Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;login attempts
&lt;/li&gt;
&lt;li&gt;public APIs
&lt;/li&gt;
&lt;li&gt;payment systems
&lt;/li&gt;
&lt;li&gt;search endpoints
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Rate limiting is not just about blocking users.&lt;/p&gt;

&lt;p&gt;It’s about protecting your system from overload.&lt;/p&gt;

&lt;p&gt;A small feature that prevents big failures.&lt;/p&gt;

</description>
      <category>api</category>
      <category>backend</category>
      <category>beginners</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Omja sharma</dc:creator>
      <pubDate>Thu, 09 Apr 2026 11:41:35 +0000</pubDate>
      <link>https://forem.com/omjasharma/-3hff</link>
      <guid>https://forem.com/omjasharma/-3hff</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/omjasharma/system-design-basics-how-systems-actually-scale-1oe6" class="crayons-story__hidden-navigation-link"&gt;System Design Basics: How Systems Actually Scale&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/omjasharma" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868170%2F57c5bdca-470d-4f1b-9b53-10d996d4bb15.jpg" alt="omjasharma profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/omjasharma" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Omja sharma
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Omja sharma
                
              
              &lt;div id="story-author-preview-content-3473148" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/omjasharma" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868170%2F57c5bdca-470d-4f1b-9b53-10d996d4bb15.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Omja sharma&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/omjasharma/system-design-basics-how-systems-actually-scale-1oe6" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 8&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/omjasharma/system-design-basics-how-systems-actually-scale-1oe6" id="article-link-3473148"&gt;
          System Design Basics: How Systems Actually Scale
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/omjasharma/system-design-basics-how-systems-actually-scale-1oe6" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/omjasharma/system-design-basics-how-systems-actually-scale-1oe6#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Why Systems Fail Under Load (and How to Fix Them)</title>
      <dc:creator>Omja sharma</dc:creator>
      <pubDate>Thu, 09 Apr 2026 11:32:58 +0000</pubDate>
      <link>https://forem.com/omjasharma/why-systems-fail-under-load-and-how-to-fix-them-41ie</link>
      <guid>https://forem.com/omjasharma/why-systems-fail-under-load-and-how-to-fix-them-41ie</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc618vr5jpivcy354oshj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc618vr5jpivcy354oshj.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your system won’t fail because of code.&lt;/p&gt;

&lt;p&gt;It will fail because of scale.&lt;/p&gt;

&lt;p&gt;Here’s what actually breaks systems in production and how to fix it.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Database Overload
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Too many reads/writes hit the database.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slow queries&lt;/li&gt;
&lt;li&gt;timeouts&lt;/li&gt;
&lt;li&gt;high CPU usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add caching (Redis)&lt;/li&gt;
&lt;li&gt;use read replicas&lt;/li&gt;
&lt;li&gt;optimize queries and indexing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Single Server Bottleneck
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Everything runs on one server.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crashes under traffic&lt;/li&gt;
&lt;li&gt;downtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add more servers&lt;/li&gt;
&lt;li&gt;use horizontal scaling&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. No Load Balancing
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Traffic is not distributed.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uneven load&lt;/li&gt;
&lt;li&gt;some servers idle, others overloaded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;introduce a load balancer&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. No Caching
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Every request hits the database.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;high latency&lt;/li&gt;
&lt;li&gt;slow responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cache frequently accessed data&lt;/li&gt;
&lt;li&gt;store sessions and API responses in Redis&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Blocking Operations
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Heavy tasks run in request cycle.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sending emails&lt;/li&gt;
&lt;li&gt;processing files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slow APIs&lt;/li&gt;
&lt;li&gt;request timeouts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move work to background jobs&lt;/li&gt;
&lt;li&gt;use message queues&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Traffic Spikes
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Sudden increase in users.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system crashes&lt;/li&gt;
&lt;li&gt;request failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;auto-scaling&lt;/li&gt;
&lt;li&gt;rate limiting&lt;/li&gt;
&lt;li&gt;load balancing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Large Dataset Growth
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
Database becomes too large.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;slow queries&lt;/li&gt;
&lt;li&gt;scaling issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;database sharding&lt;/li&gt;
&lt;li&gt;partitioning&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. No Monitoring
&lt;/h2&gt;

&lt;p&gt;Problem:&lt;br&gt;
You don’t know what’s happening.&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;issues detected too late&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fix:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;track latency, errors, traffic&lt;/li&gt;
&lt;li&gt;use monitoring tools&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Systems don’t fail randomly.&lt;/p&gt;

&lt;p&gt;They fail in predictable ways.&lt;/p&gt;

&lt;p&gt;System design is not about building perfect systems.&lt;/p&gt;

&lt;p&gt;It’s about identifying bottlenecks and fixing them before they break.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>database</category>
      <category>performance</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>System Design Basics: How Systems Actually Scale</title>
      <dc:creator>Omja sharma</dc:creator>
      <pubDate>Wed, 08 Apr 2026 21:22:57 +0000</pubDate>
      <link>https://forem.com/omjasharma/system-design-basics-how-systems-actually-scale-1oe6</link>
      <guid>https://forem.com/omjasharma/system-design-basics-how-systems-actually-scale-1oe6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90foitsp39ggnb9icyyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90foitsp39ggnb9icyyi.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Most systems don’t start distributed. They start simple and evolve with scale.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the typical flow.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Single Server
&lt;/h2&gt;

&lt;p&gt;Everything runs on one machine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;application&lt;/li&gt;
&lt;li&gt;database
Easy to build, easy to break.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. Split Application and Database
&lt;/h2&gt;

&lt;p&gt;Move database to a separate server.&lt;br&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;better performance&lt;/li&gt;
&lt;li&gt;independent scaling&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Horizontal Scaling
&lt;/h2&gt;

&lt;p&gt;Add multiple application servers.&lt;br&gt;
Now the system can handle more traffic.&lt;br&gt;
&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br&gt;
How do users reach the right server?&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Load Balancer
&lt;/h2&gt;

&lt;p&gt;Distributes incoming requests across servers.&lt;br&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;avoids overload&lt;/li&gt;
&lt;li&gt;improves availability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  5. Database Replication
&lt;/h2&gt;

&lt;p&gt;Primary database handles writes&lt;br&gt;&lt;br&gt;
Replicas handle reads&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reduces load on primary&lt;/li&gt;
&lt;li&gt;improves read performance&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Caching
&lt;/h2&gt;

&lt;p&gt;Use Redis or in-memory cache.&lt;br&gt;
&lt;strong&gt;Store:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frequently accessed data&lt;/li&gt;
&lt;li&gt;session data
&lt;strong&gt;Benefits:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;faster responses&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - fewer database queries
&lt;/h2&gt;

&lt;h2&gt;
  
  
  7. CDN
&lt;/h2&gt;

&lt;p&gt;Serve static files closer to users.&lt;br&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lower latency&lt;/li&gt;
&lt;li&gt;reduced backend load&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  8. Message Queue
&lt;/h2&gt;

&lt;p&gt;Use queues for async work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;emails&lt;/li&gt;
&lt;li&gt;notifications&lt;/li&gt;
&lt;li&gt;background jobs
&lt;strong&gt;Benefits:&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;decouples system&lt;/li&gt;
&lt;li&gt;improves reliability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  9. Database Sharding
&lt;/h2&gt;

&lt;p&gt;Split data across multiple databases.&lt;br&gt;
&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;handles large scale
&lt;strong&gt;Tradeoff:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  - added complexity
&lt;/h2&gt;

&lt;h2&gt;
  
  
  10. Monitoring
&lt;/h2&gt;

&lt;p&gt;Track:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;latency&lt;/li&gt;
&lt;li&gt;errors&lt;/li&gt;
&lt;li&gt;traffic
Without this, you are blind.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Key Idea&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Systems are not designed for scale from day one. They evolve as bottlenecks appear.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
