<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DDIA on EverythingPython</title><link>https://everythingpython.in/blog/ddia/</link><description>Recent content in DDIA on EverythingPython</description><generator>Hugo</generator><language>en-US</language><copyright>Contents under CC-BY-NC</copyright><lastBuildDate>Thu, 26 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://everythingpython.in/blog/ddia/index.xml" rel="self" type="application/rss+xml"/><item><title>Reading DDIA - Part 3</title><link>https://everythingpython.in/blog/reading-ddia-part-3/</link><pubDate>Thu, 26 Sep 2024 00:00:00 +0000</pubDate><guid>https://everythingpython.in/blog/reading-ddia-part-3/</guid><description>&lt;h2 id="chapter-1---reliable-scalable-and-maintainable-applications"&gt;Chapter 1 - Reliable, Scalable and Maintainable Applications&lt;/h2&gt;
&lt;p&gt;In [[Reading DDIA - Part 2]] , I read about the second way in which design decisions are typically driven - Scalability.
This section is about what the book says is the third factor - Maintainability.&lt;/p&gt;
&lt;h2 id="what-is-a-maintainable-system"&gt;&lt;u&gt;What is a maintainable system?&lt;/u&gt;&lt;/h2&gt;
&lt;h3 id="my--thoughts-prior-to-reading-the-section--"&gt;My thoughts prior to reading the section -&lt;/h3&gt;
&lt;p&gt;Something they said in the &lt;a href="https://www.youtube.com/watch?v=JqDAEH_2t6M"&gt;San Diego Machine Learning&lt;/a&gt; struck me as my reaction as well - Maintainability is not one of the &amp;ldquo;concerns&amp;rdquo; I would have listed for a data intensive system.
But now that it is, let&amp;rsquo;s think about it -
What does it mean to &lt;strong&gt;maintain&lt;/strong&gt; a system?
My interpretation is - how would the system be set up for functioning smoothly over time?
To that end,&lt;/p&gt;</description></item><item><title>Reading DDIA - Part 2</title><link>https://everythingpython.in/blog/reading-ddia-part-2/</link><pubDate>Wed, 25 Sep 2024 00:00:00 +0000</pubDate><guid>https://everythingpython.in/blog/reading-ddia-part-2/</guid><description>&lt;h2 id="chapter-1---reliable-scalable-and-maintainable-applications"&gt;Chapter 1 - Reliable, Scalable and Maintainable Applications&lt;/h2&gt;
&lt;p&gt;In [[Reading DDIA - Part 1]] , I read about Reliability. The next section is Scalability .
First let me talk about the assumptions I made about the term Scalability, what I understand from it prior to reading Martin Kleppman&amp;rsquo;s thoughts on the topic -&lt;/p&gt;
&lt;h1 id="what-is-a-scalable-system"&gt;&lt;u&gt;What is a scalable system?&lt;/u&gt;&lt;/h1&gt;
&lt;h3 id="my--thoughts-prior-to-reading-the-section--"&gt;My thoughts prior to reading the section -&lt;/h3&gt;
&lt;p&gt;Scale refers to how does a system grow. Growth can be needed for multiple reasons -&lt;/p&gt;</description></item><item><title>Reading DDIA - Part 1</title><link>https://everythingpython.in/blog/reading-ddia-part-1/</link><pubDate>Mon, 23 Sep 2024 00:00:00 +0000</pubDate><guid>https://everythingpython.in/blog/reading-ddia-part-1/</guid><description>&lt;p&gt;&lt;em&gt;(Here&amp;rsquo;s the preface in case you missed it - [[Reading DDIA - Preface]])&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="chapter-1---reliable-scalable-and-maintainable-applications"&gt;Chapter 1 - Reliable, Scalable and Maintainable Applications&lt;/h2&gt;
&lt;p&gt;This chapter&amp;rsquo;s goal is to effectively give us a high level overview of what this book is fundamentally about -&lt;/p&gt;
&lt;p&gt;Thinking about data systems along the axes of :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reliability&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="what-is-a-reliable-system"&gt;&lt;u&gt;What is a reliable system?&lt;/u&gt;&lt;/h1&gt;
&lt;h3 id="my-thoughts-before-reading-the-section-"&gt;My thoughts before reading the section :&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A system that is available to return results/outputs that are expected of it when it is employed.&lt;/li&gt;
&lt;li&gt;If I&amp;rsquo;m accessing an API, if the API is available 99 out of 100 times, then its reliability is 99%&lt;/li&gt;
&lt;li&gt;If a server is available for 23 hrs 45 minutes per day then its availability is 23.75/24 = 98.9%&lt;/li&gt;
&lt;li&gt;But is availability == reliability? Let&amp;rsquo;s see.&lt;/li&gt;
&lt;li&gt;A reliable human is someone who does something that he says he will do or is expected to do every time. Similarly a reliable system is one that returns the expected results every time that they are used.&lt;/li&gt;
&lt;li&gt;An ATM is reliable if I can withdraw money from it in the denominations that I want, when I want it. For example, the ATM in Puttenahalli , JP Nagar is perpetually unavailable. Everytime I go there, the system is under maintenance. It is 0% reliable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let&amp;rsquo;s read the chapter.&lt;/p&gt;</description></item><item><title>Reading DDIA - Preface</title><link>https://everythingpython.in/blog/reading-ddia-preface/</link><pubDate>Sun, 22 Sep 2024 00:00:00 +0000</pubDate><guid>https://everythingpython.in/blog/reading-ddia-preface/</guid><description>&lt;p&gt;Over the next few weeks, I want to read a book that has been long-pending - &lt;a href="https://www.amazon.in/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/9352135245"&gt;&amp;ldquo;Designing Data Intensive Applications&amp;rdquo;&lt;/a&gt; by Martin Kleppman. I&amp;rsquo;ve been building data applications for a while now but most, if not all the learnings, have been through trial and error after error after error. I&amp;rsquo;ve learnt a decent bit from observing more senior engineers, architects, design documents and building architectures little by little on my own, but not yet I think, in a structured, deliberate manner. I&amp;rsquo;m hoping to learn that in this book along with the other books I will likely have to refer along the way.&lt;/p&gt;</description></item></channel></rss>