<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>System Design Handbook</title>
    <link>https://kuvasz.io/</link>
    <description>Recent content on System Design Handbook</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>[© 2025 kuvasz.io]</copyright>
    <atom:link href="https://kuvasz.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Handling Failures</title>
      <link>https://kuvasz.io/articles/system-design-1/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://kuvasz.io/articles/system-design-1/</guid>
      <description>&lt;h1 id=&#34;handling-failures&#34;&gt;Handling failures&lt;a class=&#34;anchor&#34; href=&#34;#handling-failures&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;This blog is part of a series on robust system design. Check the other posts that address scalability, failures, latency and integration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A large system consists of an end-user application (mobile, web) calling an exposed API. This API will translate into a number of internal and external API calls. We are considering the synchronous part of the system only: the services that are directly used by the API call.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Handling overload</title>
      <link>https://kuvasz.io/articles/system-design-2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://kuvasz.io/articles/system-design-2/</guid>
      <description>&lt;h1 id=&#34;handling-overload&#34;&gt;Handling overload&lt;a class=&#34;anchor&#34; href=&#34;#handling-overload&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Any system has a specific maximum capacity under a certain type of workload. The underlying virtual or physical hardware limits this capacity.&lt;/p&gt;&#xA;&lt;h2 id=&#34;origins&#34;&gt;Origins&lt;a class=&#34;anchor&#34; href=&#34;#origins&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The major components with hard limits are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Processor: if too many processes are competing for CPU time, there will come a time when the operating system scheduler will have to pause certain processes and delay them.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Memory size: memory is different from processor and disk in the sense that it is a hard limit. If a process cannot allocate memory, it will simply crash. Operating system delay this from happening by using swap: using disk as a trade-off between speed and crashes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Availability</title>
      <link>https://kuvasz.io/articles/system-design-3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://kuvasz.io/articles/system-design-3/</guid>
      <description>&lt;h1 id=&#34;availability&#34;&gt;Availability&lt;a class=&#34;anchor&#34; href=&#34;#availability&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;This blog is part of a series on robust system design. Check the other posts that address scalability, failures, latency and integration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;a class=&#34;anchor&#34; href=&#34;#introduction&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;In today&amp;rsquo;s digital landscape, where businesses and users expect seamless, uninterrupted access to services, ensuring high system availability is a critical concern for IT organizations. Modern IT systems comprise numerous interdependent components that exchange information, and their collective availability directly impacts the overall user experience and business continuity.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scalability</title>
      <link>https://kuvasz.io/articles/system-design-4/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://kuvasz.io/articles/system-design-4/</guid>
      <description>&lt;h1 id=&#34;scalability&#34;&gt;Scalability&lt;a class=&#34;anchor&#34; href=&#34;#scalability&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Understanding system scalability is crucial for building robust applications. This post explores the qualitative and quantitative approach to system. Before diving into the mathematical aspects of system scaling, let&amp;rsquo;s understand the two fundamental approaches to scaling: vertical and horizontal.&lt;/p&gt;&#xA;&lt;h2 id=&#34;understanding-scaling-approaches&#34;&gt;Understanding Scaling Approaches&lt;a class=&#34;anchor&#34; href=&#34;#understanding-scaling-approaches&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;vertical-scaling-scaling-up&#34;&gt;Vertical Scaling (Scaling Up)&lt;a class=&#34;anchor&#34; href=&#34;#vertical-scaling-scaling-up&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Vertical scaling involves adding more power to your existing infrastructure. Think of it as upgrading your machine&amp;rsquo;s capabilities:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Resources Enhanced:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;CPU: Adding more processors&lt;/li&gt;&#xA;&lt;li&gt;Memory: Increasing RAM capacity&lt;/li&gt;&#xA;&lt;li&gt;Storage: Expanding throughput (MB/s) and performance (iops)&lt;/li&gt;&#xA;&lt;li&gt;Network: Increasing bandwidth (Gb/s)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Advantages:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
