Java

Reactive Programming in Java

Reading Time: 4 minutes Reactive programming is a programming paradigm that focuses on asynchronous and event-driven programming. Reactive programming is designed to handle streams of data and events, and it has become popular in recent years due to the rise of modern web applications and the need for real-time data processing. Java, being a popular language for enterprise applications, has several libraries and frameworks that support reactive programming. In Continue Reading

Peeling Back the Layers: Exploring Onion Architecture

Reading Time: 4 minutes Introduction Software architecture is an essential aspect of any software development project. It defines the structure of the software system and helps in achieving the desired qualities of the system. There are several software architecture patterns, and one of them is the Onion Architecture. In this blog, we will discuss Onion Architecture in detail. What is Onion Architecture? Onion Architecture is a software architecture pattern Continue Reading

Resilience4J: Introduction to Bulkhead

Reading Time: 4 minutes Resilience4J is an open-source library that provides different resilience patterns for building resilient applications. Bulkhead is one of the patterns provided by Resilience4J to prevent the cascading failure of an application by limiting the resources used by a failed component. In this blog, we will discuss in detail what it is and how Resilience4J implements it. What is a Bulkhead? It is a physical barrier Continue Reading

Reactive Programming with Java

Reading Time: 4 minutes Introduction Reactive programming is an emerging programming paradigm that has gained immense popularity in recent years. It is a programming model that focuses on building asynchronous, non-blocking, and event-driven applications. Reactive programming is all about building responsive, resilient, and scalable applications that can handle a large number of concurrent users. Java is a popular programming language that has been used to build various types of Continue Reading

Flux and Mono in Reactive Programming

Reading Time: 3 minutes Reactive Programming Reactive programming is a popular paradigm for developing applications that handle asynchronous data streams. It offers a powerful and concise way to handle complex data flows with ease. Two important concepts in reactive programming are Flux and Mono, which are part of the Reactor library developed by Pivotal. Flux Flux is a type that represents a stream of data that emits zero or Continue Reading

Finagle – Load Balancing

Reading Time: 2 minutes Finagle is a powerful RPC (Remote Procedure Call) system developed by Twitter that provides a way to build scalable and resilient services. It is used by some of the largest internet companies in the world to build their backend infrastructure. One of the critical components of any distributed system is load balancing. Load balancing refers to the process of distributing incoming requests across a group Continue Reading

Finagle: Server and Client

Reading Time: 2 minutes Finagle is a powerful network framework that provides developers with the tools they need to build highly scalable and fault-tolerant distributed systems. At the core of Finagle’s architecture are the server and client components, which work together to enable reliable communication between different services. Finagle Server The Finagle server component provides the infrastructure for building scalable, fault-tolerant network services. A Finagle server is built using Continue Reading

Deep dive into Spring Reactive WebClient

Reading Time: 3 minutes Introduction Spring Reactive WebClient is a non-blocking, reactive HTTP client that can be used to consume RESTful web services. It provides an easy-to-use and efficient way to communicate with remote APIs, allowing you to perform asynchronous and reactive programming. In this blog, we will discuss how Spring Reactive WebClient works and how you can use it to consume RESTful web services. If we talk about Continue Reading

Introduction to Apache HttpClient

Reading Time: 5 minutes Introduction Apache HttpClient is a popular open-source library for sending HTTP requests and receiving HTTP responses in Java. It provides a rich set of features for building HTTP-based client applications, including support for authentication, connection pooling, request and response interception, and more. One of the key benefits of Apache HttpClient is its flexibility and configurability. You can customize almost every aspect of the HTTP request Continue Reading

How WebClient is different from RestTemplate?

Reading Time: 3 minutes Overview WebClient and RestTemplate are two popular ways to make HTTP requests in a Java application. While WebClient and RestTemplate both allow you to interact with RESTful web services, there are some key differences between the two. What is WebClient? WebClient is a newer HTTP client introduced in Spring 5. It’s a non-blocking, reactive HTTP client designed for use with Spring WebFlux. WebClient is built Continue Reading

Spring WebFlux — Error Handling

Reading Time: 3 minutes Introduction In this Blog, we’ll take a look at the Spring WebFlux Error Handling using @ControllerAdvice. While calling the services/micro-services anything could go wrong and result in 500 “Internal Server Errors” as shown below error: Usually, error messages like this will not be handled properly and would be propagated to all the downstream services which might impact the user experience. In some cases, applications might want to use Continue Reading

Introduction to Reactive Programming

Reading Time: 4 minutes Overview In recent years, Reactive programming has gained popularity. Now it is frequently utilized programming paradigm in the creation of cutting-edge, responsive, and scalable systems. Based on the concepts of asynchronous data streams, reactive programming offers a method for handling events and data flows non-blocking and responsively. In this blog post, we will provide an introduction to Reactive Programming and explore its key concepts and Continue Reading

Swagger with Spring REST API

Reading Time: 5 minutes Swagger with Spring REST API REST is the ultimate way to expose web services nowadays. But, how do state to clients and how to use a REST API? There’s no real standard or at a minimum de facto standard to expose a REST contract. Many API spots human-readable documentation, which is currently edited and thus hard to keep perfectly synchronized with the API. Another process Continue Reading