AsyncGetStackTrace: A better Stack Trace API for the JVM

This article is the basis for my upcoming talk at FOSDEM 2023, “AsyncGetStackTrace: The Improved Version Of AsyncGetCallTrace (JEP 435),“ and is based on JEP Candidate 435. Consider you want to write a profiler to profile Java applications. Why? Because you think that the existing ones “[…] Are Fucking Terrible” or “[…] Broken”. Or you want to start a blog …

Read More »

Modular Monolithic in Practice

With the usage of microservices in application modernization, we have seen both the advantages and disadvantages of maintaining such software development styles. When we create applications mostly in enterprise organizations, the first thing that comes to our mind now is how to decouple our applications. There will be times when creating too many microservices is not the best way and …

Read More »

“The More You Say, the Less People Remember…

…The Fewer the Words, the Greater the Profit.” These wise words were written by François Fénelon, a writer and theologian living during the 17th century. This is an article summarising different approaches to the development of IT solutions. Learn why the above quote is very relevant for developers in the 21st century. Business Driven Development Business-driven development is a meta-methodology …

Read More »

Java Bytecode Simplified: Journey to the Wonderland (Part 3)

Our previous article unpacked Bytecode further and discussed ConstantPool, today I’ll go through several resources for working with it now. Java bytecode is the Java Virtual Machine’s (JVM) intermediate representation of Java code. While Java bytecode is not meant to be human-readable, it may be edited and manipulated for several reasons. This article examines the tools and methods used to …

Read More »

Vaadin, OAuth2, and Keycloak

This article shows how to configure Vaadin and Spring Security to use OAuth2 with Keycloak. Keycloak First, we must start Keycloak and configure a realm. The easiest way is to start Keycloak with Docker. Caution: This is just for development purposes. Don’t use the setup in production. docker run -d -p 8180:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:20.0.1 start-dev Now you …

Read More »

Foojay Podcast #12: State and Future of the IDEs

In this podcast,  we are talking to some of the key people working on different IDEs, Integrated Development Environments. Those are applications that provide tools to computer programmers for software development. An IDE typically consists of at least a source code editor, build automation tools, and a debugger. Let’s learn how these tools evolved, and the challenges they face to …

Read More »

Foojay.io FOSDEM Speaker Predictions for 2023

FOSDEM is around the corner and a group of great speakers is lined up to talk about the OpenJDK and the many different ways in which to make use of it. Each comes from a different part of the OpenJDK ecosystem, with different perspectives, and therefore unique insights into what to expect for this year. Tip—in each expectation/prediction for 2023 …

Read More »

Friends of OpenJDK Schedule at FOSDEM 2023

Again, i.e., following on from good times in 2022 and 2021, we have a really great schedule with inspiring speakers for FOSDEM in Brussels, on Sunday, February 5, providing a place for friends of OpenJDK in the Foojay.io Developer Room. It’s all free and fun and we’re also organizing a get together with drinks and food the evening before, on …

Read More »

How Does Kafka Perform When You Need Low Latency?

Most Apache Kafka benchmarks appear to test high throughput but not low latency. Kafka was traditionally used for high throughput rather than latency-sensitive messaging, but it does have a low-latency configuration. (Mostly setting linger.ms=0 and reducing buffer sizes). In this configuration, you can get below 1-millisecond latency a good percentage of the time for modest throughputs. Benchmarks tend to focus …

Read More »

How to Release a Java Module with JReleaser to Maven Central with GitHub Actions

This article is a tutorial that guides you through the process of releasing a Java module with JReleaser to Maven Central and Github Actions. JReleaser is a tool that streamlines the release process for Java projects, allowing developers to quickly and efficiently publish their modules to Maven Central. If you just want to publish your Maven project by hand, then …

Read More »