Journeys in Java, Level 5: Building an Empire of Microservices

We continue building our microservices system by adding a coordination layer to handle spinning multiple services up and down. The post Journeys in Java, Level 5: Building an Empire of Microservices appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

What Can We Expect In OpenJDK 19?

Although the Java 19 release is coming in September (2022-09-20), we already know what will happen in that release! The post What Can We Expect In OpenJDK 19? appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Optimizing Distributed Joins: The Case of Google Cloud Spanner and DataStax Astra DB

In this post, learn how relational and NoSQL databases, Google Cloud Spanner and DataStax Astra DB, optimize distributed joins for real-time applications. Distributed joins are commonly considered to be too expensive to use for real-time transaction processing. That is because, . … | Continue reading


@foojay.io | 2 years ago

Wordish with JavaFX – Part 3

The JavaFX controller code maintains game state and responds to user input with appropriate updates to the UI. The post Wordish with JavaFX – Part 3 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Embracing Java 17: Here’s What We Learned at Picnic

Most Java 17 blog posts focus on the shiny new language features. That’s all great, but we’d like to share what it takes to adopt Java 17 in a large tech team in the first place. The post Embracing Java 17: Here’s What We Learned at Picnic appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Memory Debugging and Watch Annotations

RAM profiling has its strengths and weaknesses. The Debugger is a complementary tool to translate obtuse statistics to actionable changes! The post Memory Debugging and Watch Annotations appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java Panama Polyglot (Rust) Part 4

By exposing native Rust functions, you can be easily accessed using Project Panama's Foreign Function Access APIs. The post Java Panama Polyglot (Rust) Part 4 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Book Review: Monolith to Microservices (Part 2)

In many cases, microservices are probably not ideal, but if you're going to do it, take baby steps. Small and short-term wins matter; it boasts the team's confidence. Always put checks and balance whether it is working or not. If not, then go back to the alternative ways. The pos … | Continue reading


@foojay.io | 2 years ago

Wordish with JavaFX – Part 2

Learn specialized JavaFX Labels and Buttons, pseudo-classes for CSS styling, and third-party font libraries and customizing Scene Builder! The post Wordish with JavaFX – Part 2 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Chopping the Monolith: The Demo

Learn how to chop up the monolith by exposing the to-be-chopped parts via HTTP and use an API Gateway to route the wanted requests to one's service of choice! The post Chopping the Monolith: The Demo appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Debugging Deadlocks and Race Conditions

Threading issues are a piece of cake with these simple debugger techniques. Yes, you CAN debug threads with breakpoints! The post Debugging Deadlocks and Race Conditions appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Why Developers Should Use Apache Pulsar

Apache Pulsar is an open source streaming platform that addresses important limitations in Kafka, particularly for cloud-native applications. The post Why Developers Should Use Apache Pulsar appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Let’s Compile Java Code in the Cloud!

Antiquated features of the JVM make it hard to utilize resources on your Cloud instances. Is it time for Java compilation in the Cloud? The post Let’s Compile Java Code in the Cloud! appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Book Review: Monolith to Microservices (Part 1)

Do we need to do all modern development via the microservices architecture? Is it the norm, the new standard? This book argues differently. The post Book Review: Monolith to Microservices (Part 1) appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Wordish with JavaFX – Part 1

Learn about the main UI layout of a cool JavaFX game using Scene Builder, TilePane, FlowPane, controller code, iOS and Android settings! The post Wordish with JavaFX – Part 1 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Toying with Kotlin’s Context Receivers

Learn about Kotlin context receivers to be able to pass additional parameters to a function without having to do it explicitly. The post Toying with Kotlin’s Context Receivers appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Azure Toolkit for IntelliJ – April 2022 Update

Azure Toolkit for IntelliJ is a plugin that allows you to easily create, develop, configure, test, and deploy Java applications to Azure. The post Azure Toolkit for IntelliJ – April 2022 Update appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Diving into JVM Framework Monitoring and Profiling

Let's look at how frameworks work under the hood, namely Quarkus and Spring Boot, and how many threads they initiate to serve up results. The post Diving into JVM Framework Monitoring and Profiling appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to Publish a Java Maven Project to the Maven Central Repository

You can follow this article if you need to publish a Java Maven-based library or artifact to Maven. The post How to Publish a Java Maven Project to the Maven Central Repository appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to do password hashing in Java applications the right way!

There are multiple ways to store sensitive passwords. And while having choices can be great, in the context of password storage, picking wrong can be a security nightmare. With that in mind, let’s hash out some of your options 🥁🥁.In this article ... The post How t … | Continue reading


@foojay.io | 2 years ago

Getting More Mileage Out of Kafka: OpenJDK vs. Azul Prime

Kafka is horizontally scalable, fault-tolerant, runs in production for thousands of companies – let's figure out how to get more out of it! The post Getting More Mileage Out of Kafka: OpenJDK vs. Azul Prime appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to run the Java Incubator Module from the Command Line and IntelliJ IDEA

JEP 425: Virtual Threads (Preview) has been proposed recently. It has been a long-awaited feature in Java. It opens the door to Structured Concurrency. This article isn’t about it, in case you are interested, you can read, the JEP draft: ... The post How to run the Java Incubator … | Continue reading


@foojay.io | 2 years ago

Setting up and Working with Apache Tomcat in IntelliJ IDEA Ultimate

Learn how to set up IntelliJ IDEA Ultimate to work with Apache Tomcat for new and existing projects. The post Setting up and Working with Apache Tomcat in IntelliJ IDEA Ultimate appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Modernize Legacy Code In Production: Rebuild Your Airplane Midflight Without Crashing

I spent over a decade as a consultant working for dozens of companies in many fields and pursuits. The diversity of each code base is tremendous. This article will try to define general rules for modernizing legacy code that would ... The post Modernize Legacy Code In Production: … | Continue reading


@foojay.io | 2 years ago

Conditional Builds on GitLab

Learn how to run a build on GitLab only if a condition is met, especially helpful when conditions are expensive and time-consuming operations. The post Conditional Builds on GitLab appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to enable preview and run code from IntelliJ IDEA

JEP 425: Virtual Threads (Preview) has been proposed recently. I wanted to give it a try it on my favorite IDE, this article shows you how to do that in IntelliJ IDEA The post How to enable preview and run code from IntelliJ IDEA appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Spring Transaction Debugging in Production with Lightrun

We use annotations to denote transactional behavior in modern Spring, so we have no code, no failure, no debugging... But is this true? The post Spring Transaction Debugging in Production with Lightrun appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

5 More Reasons to Choose Apache Pulsar Over Apache Kafka

Author’s note: I originally published this blog post in 2019, while I was CEO of Kesque, a real-time messaging service built on Apache Pulsar, the cloud-native distributed messaging and streaming platform. It’s a follow-up to an earlier post, “7 Reasons to ... The post 5 More Rea … | Continue reading


@foojay.io | 2 years ago

Bring Streaming to Apache Cassandra with Apache Pulsar

How can you stream from Pulsar to Apache Cassandra, the powerful NoSQL database designed to support data-heavy applications in the cloud? The post Bring Streaming to Apache Cassandra with Apache Pulsar appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Easy Jakarta EE Integration Testing

How to use Testcontainers for your next project to create a stable and solid integration test suite of your Jakarta EE application features. The post Easy Jakarta EE Integration Testing appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How To Submit Your Next Article On Foojay.io

Foojay, the place for friends of OpenJDK, is a friendly community of users of the OpenJDK, such as Java developers and Kotlin developers. It is a collaborative community with tips and insights being shared on a daily basis on Foojay ... The post How To Submit Your Next Article On … | Continue reading


@foojay.io | 2 years ago

Securely Authenticate to Google Cloud from GitHub

Did you know GitHub and Google Cloud have all the infrastructure available to get short-lived tokens securely? Handy for Java devs and more! The post Securely Authenticate to Google Cloud from GitHub appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Debugging Collections, Streams and Watch Renderers

Inspecting the data in the watch quickly is key to a fast and effective debugging session. Here's how you can see the data that's important! The post Debugging Collections, Streams and Watch Renderers appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Thinking About Massive Throughput? Meet Virtual Threads!

Virtual threads not only help to increase application throughput by running a much bigger number of concurrent tasks together, they also provide a framework to refactor already existing code. The post Thinking About Massive Throughput? Meet Virtual Threads! appeared first on fooj … | Continue reading


@foojay.io | 2 years ago

Journeys in Java, Level 4: Building an Empire of Microservices

Welcome to the fourth iteration in a series about building microservices in Java. Learn how microservices work from the ground up in Java! The post Journeys in Java, Level 4: Building an Empire of Microservices appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java Panama Polyglot (Python/Tensorflow) Part 3

How can you, as a Java developer, execute Python script code and access 3rd party Python libraries such as Tensorflow? The post Java Panama Polyglot (Python/Tensorflow) Part 3 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Chopping the Monolith

In this article, I highlight that microservices, as presented at conferences, are doomed to fail in most organizations. The post Chopping the Monolith appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java on Visual Studio Code Update – April 2022

Java 18 support, inlay hints for parameter names, new language server status UX, lambda expression support in debugging and more! The post Java on Visual Studio Code Update – April 2022 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Exception Breakpoint that Doesn’t Suck and a Real Use Case for Method Breakpoints

Dial your debugging skills to 11 by leveraging some of the lesser known capabilities for debugging highly complex systems such as filters! The post Exception Breakpoint that Doesn’t Suck and a Real Use Case for Method Breakpoints appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

SQL vs. NoSQL: Pros & Cons

What’s the best way to store, protect and access your data? This is a fundamental, yet critical decision. Let's look at the key criteria. The post SQL vs. NoSQL: Pros & Cons appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Building a Fullstack IMDB Clone with a Java Backend using SparkJava and Neo4j

Learn about a brand new Java developer course for Neo4J with Java 17, with lessons learned, code snippets, insights, and more! The post Building a Fullstack IMDB Clone with a Java Backend using SparkJava and Neo4j appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Does Java 18 Finally Have A Better Alternative To JNI?

Java 18, released last month, includes the 2nd incubator of the Foreign Function & Memory API (FFI). Let's look at the state of the Java FFI. The post Does Java 18 Finally Have A Better Alternative To JNI? appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How To Beautify Your GitHub Repo

Time to spruce up your GitHub! In this article, I want to highlight some files that you can use to beautify your GitHub repository. The post How To Beautify Your GitHub Repo appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Introducing the OpenJDK “Coordinated Restore at Checkpoint” Project

Dp you want to dramatically decrease JVM startup time, from hundreds of seconds to tenths of milliseconds? Find out about Java on CRaC. The post Introducing the OpenJDK “Coordinated Restore at Checkpoint” Project appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java Panama Polyglot (Swift) Part 2

Hello and welcome back to the Java Panama Polyglot series where we will be presenting quick tutorials or recipes on how to access native libraries written in other languages.  In Part 1 you got a chance to learn about how to use ... The post Java Panama Polyglot (Swift) Part 2 ap … | Continue reading


@foojay.io | 2 years ago

Top 10 Java Language Features

Let's explore ten Java programming features used frequently by developers in their day-to-day programming jobs. The post Top 10 Java Language Features appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to Create APIs with the Java 18 jwebserver Ready for Docker 

When simple web content or responses are required, Java 18 reduces the need to search for more complicated solutions like Jetty and Netty. The post How to Create APIs with the Java 18 jwebserver Ready for Docker  appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Logging Best Practices: MDC, Ingestion, and Scale

Where should you add logs in a method? Should you log in this method? If so what should you include in the log? How to phrase the message? The post Logging Best Practices: MDC, Ingestion, and Scale appeared first on foojay. | Continue reading


@foojay.io | 2 years ago