<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hariprasad</title>
    <description>The latest articles on DEV Community by Hariprasad (@hariprasadthma).</description>
    <link>https://dev.to/hariprasadthma</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1100144%2Fb15a9ac0-f472-461b-987a-be99e459b28a.jpg</url>
      <title>DEV Community: Hariprasad</title>
      <link>https://dev.to/hariprasadthma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hariprasadthma"/>
    <language>en</language>
    <item>
      <title>Resilience Patterns in Distributed Systems: Handling Transient Failures with Retry and Circuit Breaker Strategies</title>
      <dc:creator>Hariprasad</dc:creator>
      <pubDate>Sun, 28 Jan 2024 16:50:15 +0000</pubDate>
      <link>https://dev.to/hariprasadthma/resilience-patterns-in-distributed-systems-handling-transient-failures-with-retry-and-circuit-breaker-strategies-5d1a</link>
      <guid>https://dev.to/hariprasadthma/resilience-patterns-in-distributed-systems-handling-transient-failures-with-retry-and-circuit-breaker-strategies-5d1a</guid>
      <description>&lt;p&gt;&lt;strong&gt;Transient Failures&lt;/strong&gt;: In distributed systems, including microservices, failures are often transient. These can be due to temporary network glitches, short-lived unavailability of a service, etc&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retry Pattern&lt;/strong&gt;: This pattern is typically used to handle transient failures by retrying the failed operation after a short delay, in the hope that the issue resolves itself quickly. However, excessive retries can lead to resource exhaustion and can compound the problem if the service is already under stress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Circuit Breaker Pattern&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Preventing Cascade Failures&lt;/strong&gt;: In a distributed system, if one microservice fails and other services continually try to use it, this can lead to a cascade of failures. A circuit breaker helps prevent this by "opening" and stopping calls to the failing service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;System Resiliency&lt;/strong&gt;: It enhances system resiliency by allowing failed services time to recover, and it avoids overwhelming a struggling service with further requests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fallback Mechanisms&lt;/strong&gt;: Circuit breakers often provide mechanisms for a fallback action, allowing the system to continue functioning in a degraded state instead of complete failure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F468x2gkxifkxvdsycmwa.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F468x2gkxifkxvdsycmwa.PNG" alt="Image description" width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>microservices</category>
      <category>designpatterns</category>
      <category>distributedsystems</category>
    </item>
    <item>
      <title>Critical Considerations for Embracing a Microservice Architecture: Three Key Questions Developers Must Contemplate</title>
      <dc:creator>Hariprasad</dc:creator>
      <pubDate>Mon, 12 Jun 2023 17:46:38 +0000</pubDate>
      <link>https://dev.to/hariprasadthma/critical-considerations-for-embracing-a-microservice-architecture-three-key-questions-developers-must-contemplate-4c51</link>
      <guid>https://dev.to/hariprasadthma/critical-considerations-for-embracing-a-microservice-architecture-three-key-questions-developers-must-contemplate-4c51</guid>
      <description>&lt;p&gt;&lt;strong&gt;These Three Questions Developers Should Contemplate Before Adopting a Microservice Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;What are you hoping to achieve?&lt;br&gt;
For example, independent rollout and scalable components are the primary advantages of microservices. However, these advantages also come with certain drawbacks, such as increased technological diversity, heightened operational complexity, and the need for better team coordination.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have you considered alternatives to using Microservices?&lt;br&gt;
For example, Monolith architecture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How will you know if the transition is working?&lt;br&gt;
If you have successfully reduced the complexity of the application and achieved the desired outcomes.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Sam Newman's List of Four Situations Where Microservices Might Be a Bad Idea:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Unclear domain: Getting service boundaries wrong can be expensive&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Start-ups: A start-up needs to focus all its attention on finding the right fit for its product. Microservices primarily solve the sorts of problems start-ups have once they have found that fit with their customer base.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customer installed and managed software: Microservices push a lot of complexity into the operational domain. Coping with this complexity is not something you can typically expect of your end customers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not having a good reason: Do not adopt microservices if you don’t have a clear idea of what exactly it is that you are trying to achieve.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Reference: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Monolith Strikes Back: Why Istio Migrated From Microservices to a Monolithic Architecture&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>microservices</category>
    </item>
  </channel>
</rss>
