Kubernetes concepts - Controllers

Controllers create and manage pods. Controllers respond to pod state and health. Kubernetes lets you assert that resources such as pods are in a certain desired state, with specific versions. Controllers track those resources and attempt to run your software as described. There are a variety of controllers in Kubernetes, primarily ReplicaSets and Deployments. ReplicaSet - A ReplicaSet is responsible for reconciling the desired state at all times. The ReplicaSet is used to define and manage a collection of identical pods that are running on different cluster nodes. A ReplicaSet defines the image are used by the containers in the pod and the number of instances of the pod that will run in the cluster. These properties and the many others are called the desired state. If some Pods in the ReplicaSet crash and terminate, the system will recreate Pods with the original configurations on healthy nodes automatically and keep a certain number of processes continuously running. For e.g if you specified three Pods in a ReplicaSet and one fails, Kubernetes will automatically schedule and run another Pod for you. If elementary conditions are met (for example, enough memory and CPU), Pods associated with a ReplicaSet are guaranteed to run. They provide fault-tolerance, high availability, and self-healing capabilities. ...

January 14, 2019 · (updated December 21, 2024) · 2 min · 407 words · Pradeep Loganathan

Kubernetes Concepts - Pods

Pods are an important feature of Kubernetes. A Pod is the smallest unit of work that Kubernetes manages and is the fundamental unit that the rest of the system is built on. Each pod contains one or more containers. Instead of deploying containers individually, you always deploy and operate on a pod of containers. Pods are always scheduled together (always run on the same machine). A pod is as an atomic unit. Even if a pod does contain multiple containers, they are always run on a single worker node, it never spans multiple worker nodes. All the containers in a pod have the same IP address and port space. They communicate using localhost or standard inter-process communication. All containers in a pod have access to shared local storage on the node hosting the pod. This shared storage is mounted on each container. Pods provide a great solution for managing groups of closely related containers that depend on each other and need to co-operate on the same host to accomplish their purpose. Pods are considered as ephemeral, throwaway entities that can be discarded and replaced at will. Any pod storage is destroyed with its pod. Each pod gets a unique ID (UID), so you can still distinguish between them if necessary. ...

January 13, 2019 · (updated December 21, 2024) · 4 min · 740 words · Pradeep Loganathan
Circuit Breaker pattern

Circuit Breaker Pattern

The Circuit Breaker pattern is a cornerstone of resilient systems, preventing a single component’s failure from causing a catastrophic system-wide outage. This deep dive explores its mechanics, the strategic benefits beyond simple failure handling, the nuances of configuration, and its crucial role in the modern microservices ecosystem.

September 21, 2018 · (updated June 25, 2025) · 7 min · 1483 words · Pradeep Loganathan
Reactive Manifesto

Reactive Manifesto

The Reactive Manifesto describes how to design and architect Reactive systems according to your needs.Systems built as Reactive Systems are more Reliable, flexible, loosely coupled, scalable and resilient. This makes them easier to develop and amenable to change. Reactive systems are more tolerant of failure and when failure does occur, they meet it with elegance rather than disaster.

September 9, 2018 · (updated November 3, 2025) · 7 min · 1395 words · Pradeep Loganathan

Simplest introduction to docker for .Net Core

I have been working with multiple teams on containerizing their infrastructure using docker. A while back I needed to help a team understand Docker containers by getting them to dive in and get started rather than just talk and point to slide decks. We started by containerizing the simplest possible .net core console app. The first app we built was a simple console app that used a timer and printed the date and time every 2 seconds. The code and the output for this program is below ...

August 25, 2018 · (updated December 21, 2024) · 3 min · 461 words · Pradeep Loganathan

Retry Pattern

The retry pattern is an extremely important pattern to make applications and services more resilient to transient failures. A transient failure is a common type of failure in a cloud-based distributed architecture. This is often due to the nature of the network itself (loss of connectivity, timeout on requests, and so on). Transient faults occur when services are hosted separately and communicate over the wire, most likely over a HTTP protocol. These faults are expected to be short-lived. Repeating such a request that has previously failed could succeed on a subsequent attempt. ...

August 10, 2018 · (updated August 31, 2022) · 3 min · 454 words · Pradeep Loganathan
A cross-section of a ship's hull showing partitioned bulkheads.

The Bulkhead Pattern: Isolating Failures in Distributed Systems

The Bulkhead pattern is a critical resilience strategy that prevents failures in one part of a system from cascading into a catastrophic, system-wide outage. By partitioning resources, it ensures that one misbehaving dependency cannot exhaust the resources needed to serve others, thereby protecting the overall health of your application.

July 8, 2018 · (updated June 25, 2025) · 6 min · 1254 words · Pradeep Loganathan
Dates in API's

Representing DateTime formats in API specifications

Representing dates in an API is a common but often not well thought out functionality.We need to be very cognizant of representing dates, intervals, and periods in the API Payload. There are two generally accepted date formats for API’s.

June 7, 2018 · (updated February 2, 2024) · 6 min · 1169 words · Pradeep Loganathan
jwt angular interceptor

JWT - Angular Interceptor

JSON Web Token(JWT) is an industry standard for security tokens used to securely transmit information between client and server as JSON objects.It provides a solution to the problem of passing claims between parties. In this post we will create an Angular interceptor to introspect JWT tokens.

May 19, 2018 · (updated December 5, 2023) · 4 min · 826 words · Pradeep Loganathan

Serialize exceptions as JSON using custom middleware in .Net Core

Creating API’s has a certain rigor to it right from the design phase which is different from a UI based Web application. One of the areas where this is very apparent is communicating exceptions to the client. In a web application exception are communicated to the client using the UI with the most common being a 404 page. This page has been elevated to an art form now. The image below is a 404 page on Pixar’s website. ...

May 10, 2018 · (updated November 24, 2023) · 4 min · 689 words · Pradeep Loganathan