<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Faith Cherono on Medium]]></title>
        <description><![CDATA[Stories by Faith Cherono on Medium]]></description>
        <link>https://medium.com/@faithrono132?source=rss-0078f5d47f15------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*P0jMsiKjbdqESxCUWQHMhA.jpeg</url>
            <title>Stories by Faith Cherono on Medium</title>
            <link>https://medium.com/@faithrono132?source=rss-0078f5d47f15------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 19:42:59 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@faithrono132/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Introduction To The MERN Stack]]></title>
            <link>https://medium.com/@faithrono132/introduction-to-the-mern-stack-effc36cb2eb2?source=rss-0078f5d47f15------2</link>
            <guid isPermaLink="false">https://medium.com/p/effc36cb2eb2</guid>
            <dc:creator><![CDATA[Faith Cherono]]></dc:creator>
            <pubDate>Mon, 09 Sep 2024 14:05:12 GMT</pubDate>
            <atom:updated>2024-09-09T14:50:08.298Z</atom:updated>
            <content:encoded><![CDATA[<p>In the world of modern web development, the MERN stack has gained significant popularity among developers for building robust, scalable, and dynamic web applications.</p><p>MERN is an acronym that stands for <strong>MongoDB, Express, React,</strong> and <strong>Node. T</strong>hese four technologies together form a full stack JavaScript framework. Let’s dive into each of these components and understand how they are used to build a full-stack application.</p><p><strong>What is a MERN Stack?</strong></p><p>MERN stack is a set of four key technologies, all based on JavaScript, that work together to provide a comprehensive solution for building modern web applications:</p><p><strong>MongoDB</strong>: is NoSQL database that stores data in a flexible, JSON-like format. It provides a scalable and high-performance data layer that can handle large volumes of unstructured data, making it ideal for modern web applications.</p><p><strong>Express</strong>: it is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. It simplifies the development of server-side code, handling routing, middleware, and HTTP requests and responses with ease.</p><p><strong>React</strong>: a JavaScript library for building user interfaces, particularly single-page applications (SPAs). It enables developers to create dynamic, high-performance web apps by using reusable UI components and a virtual DOM for efficient rendering.</p><p><strong>Node:</strong> A JavaScript runtime environment that allows developers to run JavaScript on the server side. Node is known for its non-blocking, event-driven architecture, which makes it ideal for handling real-time applications and high-traffic websites.</p><h3>How Do These Technologies Work Together?</h3><p>MERN stack offers a seamless development experience by allowing developers to use JavaScript throughout the entire application from the client-side (React) to the server-side (Node and Express) and the database (MongoDB). Let&#39;s go through these components to see how they interact:</p><ul><li><strong>Client-Side Development (React.js)</strong>: React serves as the front-end library for building the user interface. It communicates with the back-end server through HTTP requests (usually via APIs) and updates the UI dynamically based on the responses it receives.</li><li><strong>Server-Side Development (Node.js and Express)</strong>: Node.js, along with Express.js, handle the back-end logic, routes, and server-side operations. Express manages the server configurations, routing, and middleware, allowing seamless communication between the front end and the database.</li><li><strong>Database (MongoDB)</strong>: MongoDB stores the application’s data in a document-oriented format, which is ideal for handling JSON-like data structures. It integrates easily with Node.js, allowing for smooth data retrieval and manipulation using JavaScript.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/802/0*B_S4bTF6zlJJEhNq.png" /><figcaption>MERN Stack Workflow: Visualizing the Flow of Data from Client to Server and Database</figcaption></figure><h3>Description of the MERN Stack Workflow</h3><p>The image above illustrates the flow of data in a MERN stack application, broken down into three layers: the <strong>Client Layer</strong>, the <strong>Business Logic Layer</strong>, and the <strong>Database Layer</strong>.</p><ol><li><strong>Client Layer</strong>:</li></ol><ul><li>This layer represents the user interface (UI) of the application, where the users interact through a browser or a mobile/desktop device.</li><li>The UI is built using HTML, CSS, and JavaScript, with React.js responsible for creating dynamic and interactive user interfaces.</li><li>When a user interacts with the application (e.g., clicks a button or submits a form), the client sends an HTTP request to the server</li></ul><p><strong>2. Business Logic Layer</strong>:</p><ul><li>This layer comprises the backend server, which is built using Node.js and Express.js.</li><li>The Express application receives the HTTP request from the client, processes it, and determines the necessary actions (such as querying the database or performing calculations).</li><li>The server then makes a data request to the database server if data is needed.</li></ul><p><strong>3. Database Layer</strong>:</p><ul><li>The database layer consists of a MongoDB database, where the application data is stored.</li><li>When the server makes a data request, the database processes the request and sends back a data response.</li><li>The server receives the response and sends it back to the client as an HTTP response.</li></ul><p><strong>4. Data Flow</strong>:</p><ul><li>The flow starts with the client sending an HTTP request to the backend server.</li><li>The server processes this request and interacts with the MongoDB database as needed.</li><li>After obtaining the necessary data or results, the server sends an HTTP response back to the client, which then updates the UI accordingly.</li></ul><h3>Benefits of Using the MERN Stack</h3><p>MERN stack offers several advantages for developers:</p><ul><li><strong>Full-Stack JavaScript</strong>: By using JavaScript for both front-end and back-end development, developers can streamline the development process, reuse code across the stack, and reduce the need for context-switching between different languages.</li><li><strong>Scalability</strong>: The MERN stack’s components are designed to be highly scalable. MongoDB can handle large volumes of data, React efficiently updates and renders the user interface, and Node.js is built to handle a high number of concurrent connections.</li><li><strong>Open Source and Community Support</strong>: Each component of the MERN stack is open-source, and there is a large, active community of developers contributing to its development and providing support, tutorials, and resources.</li><li><strong>Rapid Development</strong>: With tools and libraries such as Mongoose (for MongoDB), Redux (for React state management), and various middleware options for Express, developers can build and deploy applications faster.</li></ul><h3>When to Use the MERN Stack</h3><p>MERN stack is ideal for building modern web applications that require a high level of interactivity and real-time capabilities. Some common use cases are:</p><ul><li><strong>Single-Page Applications (SPAs)</strong>: React.js is highly efficient in rendering dynamic content, making it perfect for SPAs where performance and user experience are critical.</li><li><strong>Real-Time Applications</strong>: Node.js’s event-driven architecture is well-suited for real-time features like live chat applications, collaboration tools, and online gaming platforms.</li><li><strong>Enterprise-Level Applications</strong>: MongoDB’s ability to handle large volumes of data, combined with the flexibility of the other stack components, makes the MERN stack a good choice for enterprise-level applications that require scalability and adaptability.</li></ul><h3>Conclusion</h3><p>MERN stack is a powerful choice for building modern web applications. By combining MongoDB, Express, React, and Node, developers can work with JavaScript across the entire stack, simplifying development and improving efficiency.</p><p>Whether you’re building a single-page app, a real-time tool, or a large-scale platform, MERN offers the flexibility and scalability needed to bring your project to life. With its active community and open-source nature, it’s a solid option for anyone looking to create fast, dynamic, and data-driven web applications.</p><p>In a world where web development is constantly evolving, the MERN stack helps developers stay ahead by offering a cohesive and streamlined approach to building modern applications.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=effc36cb2eb2" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Post-mortem: Database Outage]]></title>
            <link>https://medium.com/@faithrono132/post-mortem-database-outage-1013d23e82cb?source=rss-0078f5d47f15------2</link>
            <guid isPermaLink="false">https://medium.com/p/1013d23e82cb</guid>
            <dc:creator><![CDATA[Faith Cherono]]></dc:creator>
            <pubDate>Sun, 14 Apr 2024 19:59:14 GMT</pubDate>
            <atom:updated>2024-04-14T19:59:14.670Z</atom:updated>
            <content:encoded><![CDATA[<p>A database outage occurred from 17th March at around 3:00pm to 6:00pm EAT.</p><p>The outage affected the availability of the database service, leading to service disruption for over 80% of the users. Users experienced slow response times and errors when accessing the application</p><p>The root cause of the outage was identified as a hardware failure in the database server, specifically the disk storage subsystem. This failure resulted in the inability to access or write data to the database, causing the service to become unavailable.<br> Issue detected by automated monitoring alert for high disk I/O latency.</p><ul><li>Operations team investigated the alert and confirmed the disk storage subsystem failure.</li><li>Initially assumed the issue was related to a network connectivity problem, leading to investigation of network infrastructure.</li><li>Issue escalated to the database administration team for further investigation.</li><li>Database team identified the hardware failure in the disk storage subsystem as the root cause.</li><li>Database team replaced the faulty hardware component and restored database service functionality.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/576/1*3tGmHKB7LgHGq1T7jp3n-g.jpeg" /></figure><p>Hardware failure in the disk storage subsystem of the database server. Replaced the faulty hardware component and restored database service functionality. Implement regular checks for hardware health status to detect potential failures early. Plan for hardware redundancy and failover mechanisms to minimize downtime in the event of future hardware failures.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1013d23e82cb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[WHAT HAPPENS WHEN YOU TYPE GOOGLE.COM IN YOUR BROWSER AND PRESS ENTER]]></title>
            <link>https://medium.com/@faithrono132/what-happens-when-you-type-google-com-in-your-browser-and-press-enter-32b80bb8db68?source=rss-0078f5d47f15------2</link>
            <guid isPermaLink="false">https://medium.com/p/32b80bb8db68</guid>
            <dc:creator><![CDATA[Faith Cherono]]></dc:creator>
            <pubDate>Sat, 16 Mar 2024 20:30:45 GMT</pubDate>
            <atom:updated>2024-03-16T20:34:28.904Z</atom:updated>
            <content:encoded><![CDATA[<h3>Title: Exploring the Journey of a Web Request: What Happens When You Type <a href="https://www.google.com/?">https://www.google.com?</a></h3><p>Introduction:</p><p>Every time we enter a URL into our browser’s address bar, a complex series of events unfolds behind the scenes to deliver the desired web page. In this blog post, we will delve into the journey of a web request to <a href="https://www.google.com,/">https://www.google.com,</a> unravelling the role of various components such as DNS, TCP/IP, firewall, HTTPS/SSL, load-balancer, web server, application server, and database.</p><p>DNS Request:</p><p>When you type <a href="https://www.google.com/">https://www.google.com</a> and press Enter, your browser initiates a Domain Name System (DNS) request. DNS is like the internet’s phone book, translating human-readable domain names (e.g., <a href="http://www.google.com)/">www.google.com)</a> into their corresponding IP addresses (e.g., 172.217.22.14). The browser contacts a DNS resolver, such as your ISP’s DNS server, which checks its own cache or queries other DNS servers to find the IP address associated with <a href="http://www.google.com./">www.google.com.</a></p><p>Example: The DNS resolver returns the IP address 172.217.22.14 for <a href="https://www.google.com/">Google</a></p><p>TCP/IP:</p><p>Once the browser obtains the IP address, it establishes a Transmission Control Protocol (TCP) connection with the web server. TCP ensures reliable data transmission by dividing the information into packets and reassembling them at the destination. Internet Protocol (IP) handles the addressing and routing of these packets across the network.</p><p>Firewall:</p><p>The TCP connection passes through firewalls, which act as security barriers, monitoring and controlling incoming and outgoing network traffic. Firewalls enforce rules to allow or block specific types of connections, protecting the network from unauthorized access and malicious activities.</p><p>HTTPS/SSL:</p><p>To secure the communication between the browser and the web server, the Hypertext Transfer Protocol Secure (HTTPS) protocol is used. HTTPS encrypts the data transmitted over the network, preventing eavesdropping and tampering. It employs Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols, which establish an encrypted connection between the client (browser) and the server.</p><p>Load-Balancer:</p><p>In the case of a high-traffic website like Google, multiple servers are employed to balance the load and ensure optimal performance. A load-balancer acts as a traffic distributor, receiving incoming requests and forwarding them to the appropriate web server. It helps distribute the workload evenly and improves the overall scalability and availability of the website.</p><p>Web Server:</p><p>The web server (e.g., Apache, Nginx) receives the HTTPS request from the load-balancer. It processes the request, retrieves the requested web page or resource, and packages it into a response message. The web server is responsible for handling various types of requests, such as GET, POST, PUT, and DELETE, and serving the corresponding content.</p><p>Application Server:</p><p>In the case of complex web applications, an application server comes into play. The application server hosts the business logic and processes the dynamic content generation. It interacts with databases, executes server-side scripts, and performs operations based on the requested actions.</p><p>Database:</p><p>Often, web applications rely on databases to store and retrieve data. The application server communicates with the database server to fetch or update information. Databases provide structured storage for web applications, enabling efficient data management and retrieval.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/751/1*8NwY5eNyDcdtyYkbzeXguA.png" /></figure><p>Conclusion:</p><p>When you type <a href="https://www.google.com/">Google</a> and hit Enter, a fascinating journey begins. From the initial DNS request to the final interaction with the database, multiple components and protocols work together seamlessly to deliver the desired web page. Understanding this process helps us appreciate the complexity and reliability of modern web infrastructure.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=32b80bb8db68" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>