Docker-Compose in Spring Boot

Docker Compose simplifies the management of multi-container applications by defining services, networks, and volumes in a single YAML file.

with a single command, we can create and start all the services from yaml file.

let’s see how we use docker compose in Spring Boot. Github Demo / Docker Compose Support in Spring Boot

Read More

BackOff

Backoff is a strategy for dealing with failures, conflicts, or resource competition.

The core logic is: when an operation fails or encounters a limitation, it will pause for a period of time before trying again, and the retry interval is usually adjusted dynamically to avoid increasing system pressure or conflicts.

let’s see how spring-framework implement it.

Read More

Spring Retry

in Spring-Framework 7.0, Spring team redesigned a minimal core retry feature in spring-core. inspired by the Spring Retry project.

currently only with 3 classes & 4 interfaces.

let’s deep into it.

Referneces:

Introduce minimal retry functionality as a core framework feature

Introduce @Retryable AOP support (based on core.retry and Reactor retry functionality)

Read More

Spring-Messaging

when I try to read the spring-integration code, I find it is essential to know spring-messaging first. some concepts are same like message channel, pollable / subscribable channel, asynchronious, integration, etc.

spring-messaging is a sub-module under spring-framework. it highly abstracts the components when two systems needs to communicate via messages.

Read More

Class-Data-Sharing

Class Data Sharing
CDS Spring Framework
CDS Spring boot
Efficient containers with Spring Boot 3, Java 21 and CDS by Sébastien Deleuze @ Spring I/O 2024

Read More

Revisited-Design-Patterns-In-Modern-Java

The more design patterns we talk about, the less powerful a language is.
The more powerful a language is, the more we will use integrated features than design patterns.

list few design patterns which are really excited to use with the evolution of Java.

https://www.youtube.com/watch?v=kE5M6bwruhw

Read More