<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spring Boot on Dhaval Shah</title><link>https://www.dhaval-shah.com/categories/spring-boot/</link><description>Recent content in Spring Boot on Dhaval Shah</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 07 May 2024 00:00:50 +0000</lastBuildDate><atom:link href="https://www.dhaval-shah.com/categories/spring-boot/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrating Spring Boot application from 2.x to 3.x</title><link>https://www.dhaval-shah.com/spring-boot-migration-from-2.x-to-3.x/</link><pubDate>Tue, 07 May 2024 00:00:50 +0000</pubDate><guid>https://www.dhaval-shah.com/spring-boot-migration-from-2.x-to-3.x/</guid><description>Background Lot of my pet projects have been built using Spring Boot 2.x version. Same might be applicable for all the enterprises and organizations who have been building Microservices based applications for their products / services using Spring Boot. During last year, Spring community made a major version upgrade and thereafter released Spring Boot 3.2 version with bunch of new features.
First thing that comes to our mind is Why should I migrate my application from 2.</description></item><item><title>Performance Comparison - RSocket Vs Webflux</title><link>https://www.dhaval-shah.com/performance-comparison-rsocket-webflux/</link><pubDate>Sun, 12 Sep 2021 14:53:50 +0000</pubDate><guid>https://www.dhaval-shah.com/performance-comparison-rsocket-webflux/</guid><description>Background In one of my previous post we saw tangible advantages (w.r.t throughput, latency and resource utilization) of refactoring existing Microservice application from imperative to reactive constructs.
So an obvious question that comes to an inquisitive mind -
Can we apply Reactive principles to the underlying communication layer
Answer to above question is - Yes and RSocket is the way to go
What is RSocket RSocket is a binary protocol that can perform bi-directional communication via TCP.</description></item><item><title>Performant and optimal Spring WebClient</title><link>https://www.dhaval-shah.com/performant-and-optimal-spring-webclient/</link><pubDate>Mon, 15 Mar 2021 14:53:50 +0000</pubDate><guid>https://www.dhaval-shah.com/performant-and-optimal-spring-webclient/</guid><description>Background In my previous post I tried demonstrating how to implement an optimal and performant REST client using RestTemplate
In this article I will be demonstrating similar stuff but by using WebClient. But before we get started, lets try rationalizing
Why yet another REST client i.e. WebClient
IMO there are 2 compelling reasons -
Maintenance mode of RestTemplate NOTE: As of 5.0 this class is in maintenance mode, with only minor requests for changes and bugs to be accepted going forward.</description></item><item><title>REST client with desired NFRs using Spring RestTemplate</title><link>https://www.dhaval-shah.com/rest-client-with-desired-nfrs-using-springs-resttemplate/</link><pubDate>Tue, 19 May 2020 14:53:50 +0000</pubDate><guid>https://www.dhaval-shah.com/rest-client-with-desired-nfrs-using-springs-resttemplate/</guid><description>Background In this contemporary world of enterprise application development, Microservice Architecture has become defacto paradigm. With this new paradigm, an application is going to have myriad set of independent and autonomous (micro)services which will be calling each other. One of the fundamental characteristics of Microservice Architecture is
Services must be easily consumable
Hence most of the services implemented will be exposing REST APIs. In order to consume these REST APIs, each Microservice application will have to implement a REST client.</description></item><item><title>Refactoring from imperative to reactive implementation</title><link>https://www.dhaval-shah.com/refactoring-from-imperative-to-reactive-implementation/</link><pubDate>Mon, 27 Jan 2020 21:06:28 +0000</pubDate><guid>https://www.dhaval-shah.com/refactoring-from-imperative-to-reactive-implementation/</guid><description>Background As software industry is embracing the new Microservice Architecture paradigm, myriad applications have been built with Spring Boot framework. By the time organizations have got its early versions of microservice applications in production, industry has found out newer and better avenues for further optimizing microservices, so that systems can be more robust, resilient and responsive a.k.a Reactive Systems (as per Reactive Manifesto ). Thanks to Spring Reactor and Spring Webflux which can help us in building reactive systems using Spring framework.</description></item><item><title>Chaos Engineering – Demonstration with working example (Part-2)</title><link>https://www.dhaval-shah.com/chaos-engineering-demonstration-with-working-example/</link><pubDate>Fri, 02 Aug 2019 17:21:13 +0000</pubDate><guid>https://www.dhaval-shah.com/chaos-engineering-demonstration-with-working-example/</guid><description>Background From first part of blog we gathered understanding about basics of Chaos Engineering. Now we will further deep dive to understand how to perform Chaos Engineering with a working example - which to me is going to be quite interesting. First lets start with understanding basics of working example which will be used to demonstrate following-
How to perform chaos engineering within an application How to monitor the behavior of the system What to monitor whilst executing experiments on our system Bird's eye view of demo example</description></item><item><title>Monitoring Spring Boot application using Actuator, Micrometer, Prometheus and Grafana</title><link>https://www.dhaval-shah.com/monitoring-spring-boot-application/</link><pubDate>Fri, 02 Nov 2018 10:37:46 +0000</pubDate><guid>https://www.dhaval-shah.com/monitoring-spring-boot-application/</guid><description>Spring Boot helps developers to implement enterprise grade applications which can be pushed to production in no time. Once application gets into production and if we strongly believe in vedic philosophy of Karma :), we are bound to experience Murphy's Law.
Whatever can go wrong, will go wrong
Considering nature of Distributed Architecture, Observability and Monitoring of application and infrastructure is of paramount importance. Thanks to the Spring Boot team, who has shipped Spring Boot Actuator from the very first release.</description></item><item><title>Bootiful Test Driven Development</title><link>https://www.dhaval-shah.com/bootiful-test-driven-development/</link><pubDate>Sun, 11 Mar 2018 14:28:47 +0000</pubDate><guid>https://www.dhaval-shah.com/bootiful-test-driven-development/</guid><description>Software engineers have been ardently following Test Driven Development (TDD) as an XP practice for having necessary safety nets. I have even tried covering different schools of TDD with an example in one of my previous posts. Considering recent surge in using Spring Boot for developing Microservice applications, I felt a need to understand and learn how to do TDD whilst implementing Spring Boot application.
In order to understand how Spring Boot simplifies the overall process of doing TDD, we will consider a very simple use case -</description></item><item><title>Microservices and Consumer Driven Contract testing using Pact</title><link>https://www.dhaval-shah.com/microservices-and-consumer-driven-contract-testing-using-pact/</link><pubDate>Mon, 10 Jul 2017 20:37:52 +0000</pubDate><guid>https://www.dhaval-shah.com/microservices-and-consumer-driven-contract-testing-using-pact/</guid><description>Background As per the current trends, Microservice Architecture has become a common paradigm using which enterprise applications are built. With this paradigm shift, an application is going to have myriad set of independent and autonomous (micro)services. So how does a developer do testing within Microservice Architecture? Answer is very obvious -
Create integration tests that invokes microservice under test which will internally call dependent microservices Get all the services under test up and running Start executing integration test which invokes microservice under test With this approach, the entire developer level integration testing will have following disadvantages -</description></item><item><title>Unraveling the magic behind Spring Boot</title><link>https://www.dhaval-shah.com/unraveling-the-magic-behind-spring-boot/</link><pubDate>Sun, 14 May 2017 18:30:00 +0000</pubDate><guid>https://www.dhaval-shah.com/unraveling-the-magic-behind-spring-boot/</guid><description>Considering the extensive usage of Spring Boot for building Cloud Native Architecture, I embarked on the journey of utilizing it in my reference Cloud Native application. When I ran my first application I was literally flabbergasted with the magic Spring Boot does under the hood, using which it camouflages the complexity and challenges of building enterprise applications. In order to understand capabilities of Spring Boot and thereby have its justifiable usage along with its troubleshooting skills I felt a dire need of demystifying the magic behind it!</description></item></channel></rss>