Continuous Development with Spring boot and Kubernetes

If you are developing Spring boot/Java application for Kubernetes, you will find out that testing and debugging the application during the daily local development is very complex and time consuming, since you have to keep doing

  • Build the application through the build tool
  • Build the docker image from docker terminal or build tool
  • Push the container image to a docker registry
  • Create/Refresh the Kubernetes’ objects with rolling deployment updates

But today we will cover how we can do that in a robust almost automated way to give the same old web typical web application development experience and you will end up feeling it is the same at the end .

we are going to show how to make your developer experience more manageable through the usage of the following:

Continue reading

Spring cloud gateway with Resilience4j circuit breaker – Part 2

In part 2 of that post , we will follow up the following :

  • How to externally configure resilience4j time limiter with the target circuit breaker
  • How to check HTTP status code through spring cloud gateway filter to trigger the related configured circuit breaker

In that post we will show the case of how you can mix the usage of the Resilience4j spring boot starter and spring cloud circuit breaker starter so you can configure externally through spring configuration your circuit breakers definitions if you do not want to use the code configuration approach provided by Spring cloud circuit breaker starter through Customizers.

Continue reading

Spring cloud gateway with Resilience4j circuit breaker

In that post we will cover how to use resilience4j circuit breaker with spring cloud gateway for the back-end services behind the gateway by utilizing the following :

In that post we will show the case of how you can mix the usage of the Resilience4j spring boot starter and spring cloud circuit breaker starter so you can configure externally through spring configuration your circuit breakers definitions if you do not want to use the code configuration approach provided by Spring cloud circuit breaker starter through Customizers.

Continue reading

DAO integration test with TestContainers , Spring boot , Liquibase and PostgresSQL

We will cover here how to do DAO integration test when you have spring boot application with PostgreSQL DB and liquibase for schema versioning , last time we have explained how to do the same without liquibase using embedded PostgreSQL in this post but this time we will do the same but using docker with test containers which will apply your liquibase changes and making sure you DAO integration test has the same environment as production database environment if you are using docker for your data base in production .

Continue reading

Java Functional Retry with resilience4j-retry

We will go through specific module(Resilience4j-Retry) from Resilience4j which is a fault tolerance library designed for Java8 and functional programming and it is lightweight library with minimal dependencies (mainly vavr) 

When you retry , there are many cases for example :

  • cross micro services communication for remote systems calls which most likely will need¬† circuit breaker logic added as well
  • if you have business or functional logic that need to get a consistent end state and most likely it is asynchronous Flow

Continue reading

Spring boot with embedded PostgreSQL for DAO integration/unit testing and local development

Here we will go through how to use embedded PostgreSQL in you local development environment plus how to use it for DAO integration/unit testing if you have are using PostgreSQL as your production database , you DAO testing should use the same database as your production one to have behavior consistency and same environment precondition.

Continue reading