Introduction 📝
This week’s collection explores a range of topics from Project Loom’s introduction of virtual threads and their impact on concurrency, to the seamless integration of Event-Driven Architecture with Change Data Capture for real-time systems, these articles provide valuable insights.
Additionally, learn about profiling Java apps using Flight Recorder & Mission Control, mastering Java Stream hacks, and building simple AI applications with Java and Quarkus.
Also, dive into how Spring Boot handles scheduled batch jobs and the difference between blocking vs non-blocking REST calls.
Top Picks ⭐
1. Project Loom and Virtual Threads: Next Phases
This talk explains Project Loom’s impact on Java concurrency, highlighting virtual threads as lightweight, user-mode threads introduced in JDK 21.
Virtual threads simplify coding by enabling a "thread-per-task" model, avoiding complex async patterns. The speaker covers pinning issues, structured concurrency, and common pitfalls like misusing thread pools.
Virtual threads don’t speed up code but boost scalability by handling millions of threads efficiently. The session emphasizes writing straightforwardly and blocking code and addresses debugging challenges in high-concurrency environments.
Watch the video here.
2. Event-Driven Architecture and Change Data Capture Made Easy
This article explains how Event-Driven Architecture (EDA) and Change Data Capture (CDC) can work together to build responsive, real-time systems. EDA enables components to communicate through events, promoting flexibility and scalability — for example, triggering actions like payment processing when an order is placed.
CDC, on the other hand, captures database changes and converts them into events, keeping systems in sync without impacting performance.
Combining both approaches allows immediate actions via EDA and reliable data propagation through CDC, resulting in applications that are both event-responsive and data-consistent.
3. Profiling Java Apps with Flight Recorder & Mission Control
Java Flight Recorder (JFR) and Java Mission Control (JMC) are essential tools for monitoring and diagnosing performance issues in Java applications with minimal impact on execution.
JFR is an event-based profiler integrated into the JVM that efficiently gathers detailed runtime information, while JMC provides a user-friendly interface to analyze this data, enabling developers to identify and resolve issues such as high CPU usage, memory leaks, and thread contention.
Together, they offer a robust solution for maintaining optimal application performance in production environments.
Read the article here.
Latest 🔥
1. Secret Java Stream hacks that will instantly improve your coding efficiency.
This article delves into advanced techniques for utilizing Java Streams to write more concise and efficient code.
It covers lesser-known methods and best practices, such as effectively using
flatMap
for complex data structures, leveraging parallel streams for performance optimization, and combining multiple operations into single streamlined expressions.By mastering these hacks, developers can enhance their coding proficiency and produce cleaner, more maintainable Java applications.
Read the article here.
2. Building a Simple RAG Application With Java and Quarkus
This article introduces developers to creating a Retrieval-Augmented Generation (RAG) application using Java and the Quarkus framework.
It highlights Quarkus's support for LangChain4j extensions, particularly the Easy RAG module, which streamlines the development of AI applications by automating the integration of retrieval components with Large Language Models (LLMs).
This approach allows developers to focus on defining data sources and crafting prompts, while the module manages the underlying RAG workflow, facilitating the rapid development of AI-driven features in Java applications.
Read the article here.
3. How Spring Boot Configures Scheduled Batch Jobs
This article explains how Spring Boot configures scheduled batch jobs, detailing how
@Scheduled
works alongside Spring Batch to automate job execution.It covers setting up
JobLauncher
, defining job beans, and usingTaskScheduler
them for flexible scheduling.It highlights the importance of transaction management, error handling, and job parameters, providing insights into building resilient, time-based batch workflows with Spring Boot’s robust configuration options.
Read the article here.
4. Blocking vs. Non-Blocking REST Calls in Java: Which One Should You Use?
This article explores blocking vs non-blocking REST calls in Java, explaining their differences, trade-offs, and ideal use cases.
Blocking calls are simpler but can tie up threads, limiting scalability, while non-blocking calls, often using frameworks like Spring WebFlux, handle more requests with fewer threads.
It advises choosing blocking for straightforward tasks and non-blocking for high-concurrency scenarios, helping developers optimize performance based on their application needs.
Read the article here.
5. A Glance into JFR Class and Method Tagging
This article explains Java Flight Recorder (JFR) class and method tagging, a powerful feature for profiling and monitoring Java applications.
It shows how tagging lets us label classes and methods with metadata, making it easier to track their behavior in JFR recordings.
This helps developers analyze performance, identify bottlenecks, and understand execution patterns, providing valuable insights for optimizing Java applications.
Read the article here.
6. Structured Logging in Spring Boot
This article discusses how to implement structured logging in Spring Boot applications using JSON format, which improves readability, searchability, and troubleshooting.
It provides steps to configure Spring Boot with structured logging by adding the
logstash-logback-encoder
dependency, creating alogback-spring.xml
configuration file, and logging messages in JSON format.This setup enhances the integration with modern log aggregators like the ELK Stack and Loki, making logs easier to analyze.
Read the article here.
7. Blockchain Development with Java: Smart Contracts & DApps
This article explores how Java developers can build decentralized applications (DApps) and smart contracts on blockchain platforms like Ethereum.
It discusses tools such as Web3j for interacting with the blockchain, creating and deploying smart contracts, and handling blockchain transactions.
The guide highlights Java's role in blockchain development and explains the integration of blockchain features into Java-based applications.
Read the article here.
Open Source
🛠️
1. Metafresh
Metasfresh is an open-source ERP system built with Spring Boot. It features a 3-tier architecture, REST API, and a web frontend using React and Redux.
It’s designed for scalability and flexibility, making it suitable for businesses of various sizes.
We can install it via Docker or Ubuntu, and it ships with detailed documentation. They release updates weekly, except for a short break at year-end.
It’s a great project for learning enterprise software development with modern tech stacks!
Checkout the repo.
Career Devlopment
📚
1. From web developer to database developer in 10 years
Phil Eaton shares his 10-year journey from web developer to database developer at EnterpriseDB. He started as a hands-on engineering manager, built small side projects (like an in-memory SQL database), and explored distributed systems.
After co-founding a startup and building community spaces, he held out for a database development role, eventually landing a job working on Postgres extensions in C and Rust. His story highlights persistence, learning through side projects, and the power of community.
Read the article here.