<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>scale &amp;mdash;   christova  </title>
    <link>https://christova.writeas.com/tag:scale</link>
    <description>&lt;b&gt;&lt;h3&gt;Tech Articles&lt;/h3&gt;&lt;/b&gt;&lt;br/&gt;&lt;b&gt;Collated from various sources. Full copyright remains with original authors.&lt;/b&gt;</description>
    <pubDate>Wed, 22 Apr 2026 11:41:28 +0000</pubDate>
    <item>
      <title>How to Scale (eCommerce example)</title>
      <link>https://christova.writeas.com/how-to-scale-ecommerce-example?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[&#xA;&#xA;How to scale a website to support millions of users? We will explain this step-by-step.&#xA;&#xA;The diagram below illustrates the evolution of a simplified eCommerce website. It goes from a monolithic design on one single server, to a service-oriented/microservice architecture. &#xA;&#xA;Suppose we have two services: inventory service (handles product descriptions and inventory management) and user service (handles user information, registration, login, etc.).&#xA;&#xA;Step 1 - With the growth of the user base, one single application server cannot handle the traffic anymore. We put the application server and the database server into two separate servers.&#xA;&#xA;Step 2 - The business continues to grow, and a single application server is no longer enough. So we deploy a cluster of application servers. &#xA;&#xA;Step 3 - Now the incoming requests have to be routed to multiple application servers, how can we ensure each application server gets an even load? The load balancer handles this nicely.&#xA;&#xA;Step 4 - With the business continuing to grow, the database might become the bottleneck. To mitigate this, we separate reads and writes in a way that frequent read queries go to read replicas. With this setup, the throughput for the database writes can be greatly increased.&#xA;&#xA;Step 5 - Suppose the business continues to grow. One single database cannot handle the load on both the inventory table and user table. We have a few options:&#xA;&#xA;1\. Vertical partition. Adding more power (CPU, RAM, etc.) to the database server. It has a hard limit.&#xA;&#xA;2\. Horizontal partition by adding more database servers.&#xA;&#xA;3\. Adding a caching layer to offload read requests.&#xA;&#xA;Step 6 - Now we can modularize the functions into different services. The architecture becomes service-oriented / microservice.&#xA;&#xA;#scaling #scale #eCommerce]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/E2rbTuC1.jpg" alt=""/></p>

<p>How to scale a website to support millions of users? We will explain this step-by-step.</p>

<p>The diagram below illustrates the evolution of a simplified eCommerce website. It goes from a monolithic design on one single server, to a service-oriented/microservice architecture.</p>

<p>Suppose we have two services: inventory service (handles product descriptions and inventory management) and user service (handles user information, registration, login, etc.).</p>

<p><strong>Step 1</strong> – With the growth of the user base, one single application server cannot handle the traffic anymore. We put the application server and the database server into two separate servers.</p>

<p><strong>Step 2</strong> – The business continues to grow, and a single application server is no longer enough. So we deploy a cluster of application servers.</p>

<p><strong>Step 3</strong> – Now the incoming requests have to be routed to multiple application servers, how can we ensure each application server gets an even load? The load balancer handles this nicely.</p>

<p><strong>Step 4</strong> – With the business continuing to grow, the database might become the bottleneck. To mitigate this, we separate reads and writes in a way that frequent read queries go to read replicas. With this setup, the throughput for the database writes can be greatly increased.</p>

<p><strong>Step 5</strong> – Suppose the business continues to grow. One single database cannot handle the load on both the inventory table and user table. We have a few options:</p>

<p>1. Vertical partition. Adding more power (CPU, RAM, etc.) to the database server. It has a hard limit.</p>

<p>2. Horizontal partition by adding more database servers.</p>

<p>3. Adding a caching layer to offload read requests.</p>

<p><strong>Step 6</strong> – Now we can modularize the functions into different services. The architecture becomes service-oriented / microservice.</p>

<p><a href="https://christova.writeas.com/tag:scaling" class="hashtag"><span>#</span><span class="p-category">scaling</span></a> <a href="https://christova.writeas.com/tag:scale" class="hashtag"><span>#</span><span class="p-category">scale</span></a> <a href="https://christova.writeas.com/tag:eCommerce" class="hashtag"><span>#</span><span class="p-category">eCommerce</span></a></p>
]]></content:encoded>
      <guid>https://christova.writeas.com/how-to-scale-ecommerce-example</guid>
      <pubDate>Fri, 01 Nov 2024 23:49:39 +0000</pubDate>
    </item>
  </channel>
</rss>