top of page

Effortless batchs with Spring Batch and Kotlin

Sylvain, an engineer at Audensiel, shares his expertise on the Spring Batch framework and the Kotlin language. Through this article, he presents a presentation of this framework and this language as well as their uses.


Indeed, who as a developer has never dreamed of processing data efficiently?

With Spring Batch, a framework of the Spring ecosystem, it becomes easy to design and develop Java programs that process a large amount of data in a simple and efficient way.

Allied to Kotlin, a new language in vogue in recent years, creating a batch becomes a breeze.

These technologies bring simplicity and robustness and overall, it all comes down to an efficient Spring configuration.


Initiation to Kotlin, the future of Java


Kotlin is an object-oriented programming language developed by JetBrains, with static typing and which allows compiling for the JVM (Java Virtual Machine). Indeed, it has full interoperability with Java.


It is easy to write more concise and readable code with this language which will facilitate maintenance, error detection and contribute to the overall quality of the code.


To give an example of improvement, Kotlin solves NullPointerException management by integrating nullity directly into its type system. Thus developers must explicitly declare whether an object can be null.


Kotlin can use all Java libraries which is a huge advantage given the huge ecosystem that Java has accumulated over the years.


Thus it is possible to gradually migrate a Java project to Kotlin without necessarily having to rewrite the entire application.


It usually takes less time to develop an application under Kotlin than under Java. As a result, projects are more efficient and costs are reduced.


Google allowed the advance of Kotlin by formalizing this language.


To this day, Java remains ahead with a larger community and richer documentation but we do not deny its growing use.


Kotlin is ranked 33rd most used language in 2023 and 17th in 2024.


Java remains well ahead with a 3rd place in 2023 and 4th place in 2024.


In short, you understand, trying Kotlin is adopting it. Most of the developers I know have a hard time going back after trying Kotlin.

 

Spring Batch, powerful data processing tool

 

Spring Batch will allow to create batches in a simple way in an architecture using the Spring Framework. The code is divided intelligently to improve maintainability and batch logic. Thus, Spring Batch will allow to process large volumes of data in batches and optimally.


Here is the diagram showing the most important objects in Spring Batch and the relationships between them :


The Job will encapsulate the entire batch. It is composed of several Steps.


Each Step is composed of 3 objects:

- ItemReader to read data via database, CSV file, API etc… and send to ItemProcessor

- The ItemProcessor to transform the recovered data and send it to the ItemWriter.

- ItemWriter to write processed data directly to a database, CSV file, API etc…


The JobLauncher will allow the execution of the batch and the JobRepository will collect the information of the 3 instances (JobLauncher, Job, Step) throughout the processing.


For my part, Spring Batch has become an indispensable tool when processing large volumes of data. It offers a very logical structure and thus allowing to cut each treatment well. It is even possible to extend its functionality when the library does not foresee our case natively. Obviously this requires to delve further into the operation of the library which may seem complex.


More informations with these links of references :

-        https://spring.io/projects/spring-batch Spring Batch documentation link

-        https://github.com/sylvain230/batch-exemple-kotlin Link of the skeleton project available on Sylvain’s Git presented at the Twitch event held in late April 2024


Audensiel accompagne ses clients sur l’ensemble de la chaîne de valeur du traitement de la Data.

Audensiel supports its clients over the entire data processing value chain.

You want to learn more ?











Comments


bottom of page