<?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"><channel><title><![CDATA[Sayak's Blogs]]></title><description><![CDATA[Developing something great for the future India!]]></description><link>https://sayak.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1682276782439/VBqBQmj0o.png</url><title>Sayak&apos;s Blogs</title><link>https://sayak.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 10:01:13 GMT</lastBuildDate><atom:link href="https://sayak.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A list of Talks I have given!]]></title><description><![CDATA[This blog contains the list of talk I have given so far virtually or in-person.]]></description><link>https://sayak.hashnode.dev/talks</link><guid isPermaLink="true">https://sayak.hashnode.dev/talks</guid><category><![CDATA[community]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[APIs]]></category><category><![CDATA[Web3]]></category><category><![CDATA[React]]></category><dc:creator><![CDATA[Sayak Saha]]></dc:creator><pubDate>Thu, 15 Feb 2024 04:17:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1707965102405/439e446e-8637-4b87-bf1c-7fe3f5e72cb4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this blog, I will keep updating the details of my talks with the slides.</p>
<h2 id="heading-1-postman-community-kolkata-aug-23">1. Postman Community Kolkata - Aug '23</h2>
<p>Title: Set up your first Mock Server in Postman</p>
<p><a target="_blank" href="https://docs.google.com/presentation/d/10aqp5clLNib8it9Zc08cOVmU-cwUZYZ1aUQK6BAendA/edit?usp=sharing">Slide</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1707969084298/1ed8e423-7518-4e85-a258-69839ee391fd.jpeg" alt class="image--center mx-auto" /></p>
<h2 id="heading-2-gdsc-fiem-oct-23">2. GDSC FIEM - Oct '23</h2>
<p>Title: Simplifying Web Development with Fastn: Unleashing the Power of OSS</p>
<p><a target="_blank" href="https://docs.google.com/presentation/d/1biNF0dSb3bzReeIwJXaGoEYY1E9x6MeWD7KyW32QJiI/edit?usp=sharing">Slide</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1707969539715/0fada36f-4905-463e-af33-7a5c98897d5e.jpeg" alt class="image--center mx-auto" /></p>
<h2 id="heading-3-just-send-it-bangalore-oct-23">3. Just Send IT Bangalore - Oct '23</h2>
<p>Title: Introduction to Web3 and Walkthrough of SendIT wallet</p>
<p><a target="_blank" href="https://docs.google.com/presentation/d/16toxraSKoBDC66ZeLESU_nIO91pkncZqXfcUGWr7Soc/edit?usp=sharing">Slide</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1707970225205/162d3920-8710-4a0d-bff9-67e33a545a1c.jpeg" alt class="image--center mx-auto" /></p>
<h2 id="heading-4-gdsc-makaut-nov-23">4. GDSC MAKAUT - Nov '23</h2>
<p>Title: Open Source Unleashed: Introduction to Git &amp; GitHub</p>
<p><a target="_blank" href="https://docs.google.com/presentation/d/12n7Qjc5zWMIc61CVjeidM_ovln1dKQUzMaZaG5krzjM/edit?usp=sharing">Slide</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1707969780996/263a1a47-e0cb-4ab9-8d36-0ca9bddf91fa.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-5-reactplay-bangalore-jan-24">5. ReactPlay Bangalore - Jan '24</h2>
<p>Title: ReactJS in the Era of Micro Frontends</p>
<p><a target="_blank" href="https://docs.google.com/presentation/d/1XGJctGoK0oA8AU16yhCVY_wTI20Um0U4AEsTSXCRJ_Q/edit?usp=sharing">Slide</a></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1707970397453/ebd3ad9b-c8bd-4535-b6e7-136d94179ed3.jpeg" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Beginner's Guide to Kafka]]></title><description><![CDATA[A brief introduction to Kafka for beginners]]></description><link>https://sayak.hashnode.dev/beginners-guide-to-kafka</link><guid isPermaLink="true">https://sayak.hashnode.dev/beginners-guide-to-kafka</guid><category><![CDATA[kafka]]></category><category><![CDATA[Devops]]></category><category><![CDATA[apache]]></category><dc:creator><![CDATA[Sayak Saha]]></dc:creator><pubDate>Sat, 22 Apr 2023 21:10:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1682193284306/efc4d1d7-d031-4c7b-9776-290aec747fc5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-what-is-kafka">What is Kafka?</h2>
<p>If you open the <a target="_blank" href="https://kafka.apache.org/documentation/">official documentation</a> of Kafka, you will find <em>'Apache Kafka is an open-source <mark>distributed event streaming platform</mark> used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.'</em></p>
<p>Let's focus on the words <strong>event streaming</strong> and <strong>distributed</strong>.</p>
<p>Event streaming means <strong>creating real-time streams</strong> and <strong>processing real-time streams</strong>. Sounds a bit odd right? Let me explain with the below example.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682192272893/5ce0744a-56c9-461c-ac83-fa231455808a.png" alt class="image--center mx-auto" /></p>
<p>In the picture, you can see that multiple Paytm users are actively doing transactions and sending requests. All the requests are coming to Kafka Server first. This is called <strong>creating or generating a real-time stream of data</strong>. Now suppose, Paytm limits the transactions to 10 per user and for that, they are using a client application. So, this checking and counting of no. of transactions in real-time are called <strong>processing a real-time stream of data.</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682192948837/fbe801ad-e878-4620-bf68-77e8b334303e.png" alt class="image--center mx-auto" /></p>
<p>Now let's understand what <strong>Distributed</strong> means. So, in the microservices world, distributed means distributing different nodes to multiple computers or regions <strong>to balance the load and avoid downtime.</strong> As Kafka is a distributed event streaming platform we can distribute the load to different regions as shown in the above picture. In case any server goes down, another server will come into the picture and avoid application downtime.</p>
<h2 id="heading-where-does-kafka-come-from">Where does Kafka come from?</h2>
<p>Kafka was originally developed at <strong>LinkedIn</strong> and was subsequently open-sourced in early <strong>2011</strong>. <strong>Jay Kreps</strong>, <strong>Neha Narkhede</strong> and <strong>Jun Rao</strong> helped co-create Kafka. Jay Kreps chose to name the software after the author <strong>Franz Kafka</strong> because it is <em>"a system optimized for writing"</em>, and he liked Kafka's work. Currently, Kafka is developed and maintained under <strong>Apache Software Foundation</strong>.</p>
<h2 id="heading-why-do-we-need-kafka">Why do we need Kafka?</h2>
<p>Again let's understand this with an example. Suppose in a product, there are 4 different applications viz. Frontend, Hadoop, Database Slave &amp; Chat server. And each of these communicates with 5 other services.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682196083254/b2af75b8-c48e-49e0-b17c-7a7ba46f461a.png" alt class="image--center mx-auto" /></p>
<p>This looks complex but what is the problem exactly? If we try to understand, there could be <strong>3 major problems</strong>:</p>
<ol>
<li><p><strong>Data format:</strong> Here the front end wants to send a payload to the database server and also to security systems. In each case, the data format will be different. Now Hadoop also sends data to different services. So you can understand maintaining the data format in each communication is very difficult and complexity would arise in the schema.</p>
</li>
<li><p><strong>Connection type:</strong> While the applications communicate with the different services, they might create different connections like HTTP connection, Socket connection, TCP connection etc. So the connection types will be complex to maintain with multiple services.</p>
</li>
<li><p><strong>Number of Connections:</strong> In this example, each application is connected to 5 different services. So, just to maintain 9 different applications or services we need to maintain 20 different connections. If the product grows in scale or is an enterprise-level application then this number would be even more.</p>
</li>
</ol>
<h3 id="heading-how-can-we-overcome-the-challenges">How can we overcome the challenges?</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682196803288/09213334-db11-47fc-b69f-164a98e1279e.png" alt class="image--center mx-auto" /></p>
<p>All the 3 major challenges are handled by Kafka itself. Now if the frontend app wants to send some data to the database server, it will pass through the Kafka and from there it will get the specific schema. Kafka handles the connection too.</p>
<h2 id="heading-how-does-kafka-work-in-a-nutshell">How does Kafka work in a nutshell?</h2>
<p>Kafka is a distributed system consisting of <strong>servers</strong> and <strong>clients</strong> that communicate via a high-performance <a target="_blank" href="https://kafka.apache.org/protocol.html">TCP network protocol</a>. It can be deployed on bare-metal hardware, virtual machines, and containers in on-premise as well as cloud environments.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1682197238917/9f810a65-78a1-4fd9-af7f-bf52279fd35f.png" alt class="image--center mx-auto" /></p>
<ol>
<li><p><strong>Servers</strong>: Kafka is run as a cluster of one or more servers that can span multiple data centers or cloud regions. Some of these servers form the storage layer, called the brokers.</p>
</li>
<li><p><strong>Clients</strong>: They allow you to write distributed applications and microservices that read, write, and process streams of events in parallel, at scale, and in a fault-tolerant manner even in the case of network problems or machine failures.</p>
</li>
</ol>
<hr />
<p>Thank you for reading. Wish you a good day! To connect with me on LinkedIn, click <a target="_blank" href="https://www.linkedin.com/in/sayaksaha10/">here</a>.</p>
]]></content:encoded></item></channel></rss>