Enhancing Web Apps with Server-Sent Events

The Age of Real-Time Apps <> While exploring and experimenting with Spring Web Flux, I stumbled upon an interesting feature called Server-Sent Events (SSE) (rather an HTML5 standard) . Although I haven’t had the opportunity to use SSE in my professional projects yet, it immediately caught my attention — both for how it works and the real-time advantages it offers. I was curious to understand where it fits as a component within a modern, real-time application architecture. Here’s a summary of…

Read MoreEnhancing Web Apps with Server-Sent Events

From Monolithic to Microservices: Embrace Spring WebFlux

Monolithic to Microservices Till the late 2000s, I had witnessed and worked extensively on monolithic applications — the era when a single server hosted the entire system. Some of the popular choices for these central servers were WebLogic, WebSphere, and JBoss. However, that age has long passed. Such architectural choices eventually failed to scale, lacked fault tolerance, and struggled to deliver high availability — paving the way for modern, distributed, and cloud-native architectures. In the modern world of microservices, cloud-native architectures,…

Read MoreFrom Monolithic to Microservices: Embrace Spring WebFlux

Reactive Programming In Modern Software Systems

From Threads to Reactive Streams Modern software systems are increasingly expected to deliver high responsiveness, scalability, and efficiency in environments that are distributed, data-intensive, and constantly connected. Traditional thread-based concurrency models, often become inadequate although they are foundations, as applications scale to handle millions of concurrent users or data streams. Java, one of the most widely adopted programming languages for backend and enterprise systems, has continuously evolved to meet these demands—from classic multithreading to asynchronous I/O and finally to reactive programming.…

Read MoreReactive Programming In Modern Software Systems

Virtual Threads Java 21: A Game Changer – Full Stack Dev

Till recently whenever we used to start a java thread , it will internally request operating system to start the OS thread . From that point of time OS is responsible to manage this thread just like any other OS thread. So we can easily say one Java thread has one to one mapping to OS thread. We call these Java threads as Platform threads are heavy in nature and also tied with the stack space in the JVM per thread.…

Read MoreVirtual Threads Java 21: A Game Changer – Full Stack Dev

Notification Service

A notification system is responsible for sending timely alerts to users through different channels .A notification system has become one of the most essential features in modern applications, enabling instant communication between platforms and their users. Whether it is a bank sending a payment confirmation, an e-commerce app updating on delivery status, or a news portal sharing breaking updates, notifications ensure timely information reaches the right users across multiple channels like email, SMS, push, or in-app alerts. Beyond just information delivery,…

Read MoreNotification Service

High Availability

Picture this: you open your favorite streaming app on a Friday night, popcorn in hand, all set to binge that new series everyone’s talking about. You hit play—and nothing happens. The app just spins. After a few refresh attempts, you give up and head to Twitter to vent about it. That frustration you just imagined? That’s what happens when a system isn’t “highly available.” High availability (HA) might sound like a fancy buzzword, but at its core, it simply means: your…

Read MoreHigh Availability

URL Shortner

URL shortening is a technique on the World Wide Web in which a Uniform Resource Locator (URL) may be made substantially shorter and still direct to the required page. This is achieved by using a redirect which links to the web page that has a long URL [wikipedia] We’ve all seen them. Those neat little links that look like this: 👉 Instead of a giant wall of text like: 👉 https://www.superlongwebsite.com/products/category/page?id=928374&ref=campaign&utm_source=ads&utm_medium=email&utm_campaign=something-2025 Cleaner, right? Easier to share, tweet, and even remember. That’s the magic of URL shorteners. But here’s the…

Read MoreURL Shortner

Key Value Store

Key value store the first thing flashes in mind is “Map” data structure which are actually designed to store key value pairs. Key-value stores might sound simple, but they’re the quiet workhorses powering some of the biggest systems on the planet. —the simplicity hides enormous power. Key-value stores are the backbone of many large-scale systems we use every day, from caching in Facebook’s feed to Amazon’s shopping cart. As a system designer, I absolutely love talking about key-value stores because they’re…

Read MoreKey Value Store

Consistent Hashing

consistent hashing is the distributed hashing technique that distributes data across multiple servers in the cluster. It is used to efficiently rebalancing of the distribution of data across cluster when nodes are added ore removed (minimize data movement). It maps data and nodes on to hash ring. NoSQL database like Cassandra is the best example of use of consistent hashing. When we have fixed size cluster of nodes, below simple hashing works great, serverIndex = hash(key) % N, where N is…

Read MoreConsistent Hashing

Rate Limiting

Rate limiter is the controller to monitor and control the amount of traffic allowed to protect the network or your network of the services from attacks and overwhelming the system and eventually avoid it from crashing down. In the context of HTTP, it restricts the number of requests a client can send within a specified time period. Once the threshold is exceeded, any additional requests are blocked. What is Rate Limiting, Really? Restricting or putting certain controls over how callers can…

Read MoreRate Limiting