Object Mapping is key in programming for converting objects and data between formats, such as JSON (JavaScript Object Notation). Serialization converts an object to a raw data format (sometimes a JSON string), while Deserialization converts raw data back into an object. One of the most popular libraries used for object mapping in Java is Jackson.... Continue Reading →
How to Securely Access AWS Resources from Kubernetes Using IAM Roles for Service Accounts (IRSA)
If you need to access an AWS resource from your environment (whether from your local machine or a CI/CD pipeline), you’ll need your permanent AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. Your deployed application must also have and use similar credentials (though a temporal one) to access the resources required to start and run successfully. However, we can't (and... Continue Reading →
Migrating to Spring Boot 3
Two years after the official release of Spring Boot 3, you’ve decided to migrate your application. It's important to note that you will need to upgrade your Java version to at least Java 17, as well as upgrade to Spring Framework 6.0 and Spring Security 6. These are the minimum requirements for the migrationAccording to... Continue Reading →
Data Logistics using Apache Kafka, Spark, and Spring Boot
This post summarizes how Apache Kafka works and demonstrates how it can be used to ingest data and transfer it to another system. It will therefore only highlight the fundamentals of Apache Kafka, its justification, the context of usage as well as using its Producer and Consumer API. What is Apache Kafka? Even though it... Continue Reading →
Container-based Virtualization of a Hadoop Cluster using Docker
Hadoop is a collection of open-source software utilities, a framework that supports the processing of large data sets in a distributed computing environment. Its core part consists of HDFS (Hadoop Distributed File System) which is used for storage, MapReduce which is used to define the data processing task and YARN which actually runs the data... Continue Reading →
Optimizing Scheduled Job Execution with Jobrunr and Shedlock
In a setup where multiple instances of an application are running simultaneously, it is imperative to make sure only one of those instances can start the execution of a scheduled job. However, in a scenario where the tasks of the scheduled job are not only heavy but also voluminous, it is important to find a... Continue Reading →