Managing MongoDB Database Changes Using Liquibase Pro

Table of Contents What is Liquibase?What is MongoDB?Setting up a local MongoDB instance on WindowsUse Liquibase with MongoDBPrerequisitesInstall supporting driversConnection configurationConnection testHands-on execution steps detailed1. Create project and add files2. Project str … | Continue reading


@foojay.io | 3 months ago

JC-AI Newsletter #3

The first and second newsletters introduced a 14-day cadence, and even though it is the holiday season for many of us, we are sticking to the promised period. The current newsletter vol.3, brings a collection of valuable articles focusing on ... The post JC-AI Newsletter #3 appea … | Continue reading


@foojay.io | 3 months ago

New Java Benchmark for Coding LLMs puts GPT-5 at the top

Table of Contents GPT-5 is on top at every performance level and every price point… but it’s no speed demonPerformance by task lengthOther observationsImplications for buildersA Note on Reasoning Introducing the Brokk Power Ranking The Brokk Power Ranking is a ... The post New Ja … | Continue reading


@foojay.io | 3 months ago

OpenTelemetry configuration gotchas

Table of Contents The promise of OpenTelemetryGotchasPath or no path?Python loggingMicrometer TracingQuarkusSummary Last week, I described several approaches to OpenTelemetry on the JVM, their requirements, and their different results. This week, I want to highlight several gotch … | Continue reading


@foojay.io | 3 months ago

OpenTelemetry Tracing on the JVM

Table of Contents CommonalitiesRunning the OpenTelemetry AgentMicrometer Tracing on Spring BootOpenTelemetry Spring Boot StarterQuarkusDiscussion You may know I'm a big fan of OpenTelemetry. I recently finished developing a master class for the YOW! conference at the end of the y … | Continue reading


@foojay.io | 3 months ago

Domain-Driven Design in Java: A Practical Guide

Table of Contents Understanding the “Airport” domainModeling the core Airport domain in JavaIdentifying aggregates and entitiesImplementing entities and value objectsBounded contexts and modularizationRepositories, domain services, and factoriesRepositoriesDomain servicesFactorie … | Continue reading


@foojay.io | 3 months ago

Enforcing Governance in MongoDB Atlas with Resource Policies

Table of Contents What Are Resource Policies?Why Use Them?Available CapabilitiesApplying Resource Policies with Terraform🔐 Example 1: Allow clusters only on AWS🌐 Example 2: Block public IPs (0.0.0.0/0)🔒 Example 3: Enforce TLS 1.2 or higherValidation and Te … | Continue reading


@foojay.io | 3 months ago

Do we understand the value of AI knowledge ?

Table of Contents I remember the first time I saw a diagram of a neuron (Img.1.). I was a school kid, and among other hobbies, I was interested in the human brain, it fascinated me. I borrowed a book from ... The post Do we understand the value of AI knowledge ? appeared first on … | Continue reading


@foojay.io | 3 months ago

Preparing for Spring Framework 7 and Spring Boot 4

Table of Contents 1. Built-in Resilience Feature2. Fluent JMS Client API3. Robust Api Versioning4. Unified Message Conversion5. Faster and Smarter Testing6. Modern Ecosystem Integration7. Hibernate ORM and JPA Upgrades8. Overhauled HttpHeaders API9. Support for Jackson 3.x10. Nul … | Continue reading


@foojay.io | 3 months ago

New Features in Jakarta EE 11, with Examples

Table of Contents Jakarta EE 11 is a major update in the enterprise Java world. It offers key changes that enhance developer productivity and modernize the platform.Key Features of Jakarta EE 11Jakarta Data: Simplified Data AccessWhat is Jakarta Data?Jakarta Data Code ExamplesUpd … | Continue reading


@foojay.io | 3 months ago

Semantic Caching with SpringBoot & Redis

Table of Contents 0. GitHub Repository1. Add the required dependencies2. Configure the Semantic Cache Vector Store3. Implement the Semantic Caching Service4. Integrate with the RAG ServiceStep 1: Clone the repositoryStep 2: Configure your environmentStep 3: Start the servicesStep … | Continue reading


@foojay.io | 4 months ago

Pattern-matching across different languages

Table of Contents Java's pattern matchingCharacteristics of the new switch syntaxScala's pattern matchingKotlin's pattern matchingPython's pattern matchingRust's pattern matchingConclusion Pattern matching is a major feature in software development. While pattern matching applies … | Continue reading


@foojay.io | 4 months ago

Run an Atlas Cluster Locally in Minutes

Run an Atlas cluster locally in minutes You no longer need a cloud account to try MongoDB Atlas features. Spin up a fully compatible local cluster in seconds, with no login, no credit card, and no friction. 🕒 Reading time: ... The post Run an Atlas Cluster Locally in Minu … | Continue reading


@foojay.io | 4 months ago

JC-AI Newsletter #2

Table of Contents In the first newsletter, we introduced a 14-day cadence, which means that this week it's time for a new collection of articles from the fields of AI, LLM, Java and more.article: OpenAI CEO Sam Altman warns of ... The post JC-AI Newsletter #2 appeared first on fo … | Continue reading


@foojay.io | 4 months ago

Release V0.0.2 of Java DMX512 Library With Universes and USB-to-DMX support

Table of Contents Introduction of DMX UniversesUSB-to-DMX SupportDMX512 Java LibraryDMX512 JavaFX Demo ProjectNext Steps Earlier this month, I released V0.0.1 of my new Java library to interact with DMX512 devices using (optionally) the Open Fixture Library (OFL). After some more … | Continue reading


@foojay.io | 4 months ago

🧱 Monolith or 🧩 Microservices in 2025?

Monolith vs Microservices in 2025. Discover trends, trade-offs, and why simplicity and DX matter more than ever. The post 🧱 Monolith or 🧩 Microservices in 2025? appeared first on foojay. | Continue reading


@foojay.io | 4 months ago

Why Java is Still Worth Learning in 2025: A Developer’s 25-Year Journey

After dismissing Java for eight years as a "passing trend for developers who couldn't handle real programming," one developer's 25-year journey reveals how Java evolved from a language he distrusted to the foundation of his career, and why he believes it's still one of the most v … | Continue reading


@foojay.io | 4 months ago

JavaFX Links of July 2025

Table of Contents CoreApplicationsGamesComponents, Libraries, ToolsPodcasts, Videos, BooksConferences, PresentationsTutorialsMiscellaneousJFX Central Here is the overview of the JavaFX LinksOfTheMonth of July 2025. You can find the weekly lists on jfx-central.com. Did we miss any … | Continue reading


@foojay.io | 4 months ago

Java, What’s Old? Part II: Utils

Table of Contents ObjectsvolatileLocaleCollatorNormalizer After Java, What's Old? Part I - Collections, let's now have a look at less known old utility classes that can still be useful. Everything in this series will be in Java 8 and later, so ... The post Java, What’s Old? Part … | Continue reading


@foojay.io | 4 months ago

Building Robust AI Applications with LangChain4j Guardrails and Spring Boot

Table of Contents Understanding LangChain4j GuardrailsSetting Up a Spring Boot Project with LangChain4jImplementing Input GuardrailsContent Safety Input GuardrailSmart Context-Aware GuardrailIntelligent Input SanitizerImplementing Output GuardrailsProfessional Tone Output Guardra … | Continue reading


@foojay.io | 4 months ago

Why Mirroring Production in Dev Helps You Avoid Costly Mistakes

Table of Contents The setup: A realistic aggregation scenarioThe application behind the testTesting on M0: The hidden riskTaking it to production: Same query, different outcomeReal-time metrics: Detecting the bottleneckQuery insights: The detective toolDon’t guess, let Performanc … | Continue reading


@foojay.io | 4 months ago

CodeRabbit Tutorial for Java Developers

Table of Contents Getting StartedPrerequisitesSetup ProcessCore Features for Java Development1. Code Quality Analysis2. Security Vulnerability Detection3. Performance Optimization Suggestions4. Design Pattern RecognitionWorking with CodeRabbit ReviewsUnderstanding Review Comments … | Continue reading


@foojay.io | 4 months ago

Foojay Podcast #77: DevBcn Report, Part 2 – Spanish Knowledge Sharing

Table of Contents VideoPodcast (Audio only)Content This is the first Foojay podcast in Spanish. It's also the shortest one and the final of season 4 😉 Jonathan Vila "highjacked" the microphone from Geertjan Wielenga (See episode 76) during the DevBcn ... The post Foojay P … | Continue reading


@foojay.io | 4 months ago

Introducing a New Java DMX512 Library With Demo JavaFX User Interface

Table of Contents A Personal StoryAbout DMX512 and OFLWhat is DMX512What is Open Fixture LibraryDMX512 Java LibraryMy Test SetupMinimal Code ExampleUsing Fixtures and ModesDetecting USB-to-DMX and IP-to-DMX interfacesDMX512 JavaFX Demo ProjectNext Steps In this post, I would like … | Continue reading


@foojay.io | 4 months ago

Agent Memory with Spring AI & Redis

Table of Contents You're building an AI agent with memory using Spring AI and Redis. Unlike traditional chatbots that forget previous interactions, memory-enabled agents can recall past conversations and facts. It works by storing two types of memory in Redis: ... The post Agent … | Continue reading


@foojay.io | 4 months ago

Java 22 to 24: Level up your Java Code by embracing new features in a safe way

Table of Contents Java introduces several new language features in the 22 to 24 versions which collectively simplify code, enhance documentation, and provide powerful tools for bytecode manipulation and advanced stream processing. This article shows you how to leverage these ... … | Continue reading


@foojay.io | 4 months ago

MongoDB ACID Transactions With Java

Table of Contents What are MongoDB ACID transactions and when should you use them?But do you really need a transaction?Transaction APIs: Callback vs coreWhen to use the callback APIWhen to use the core APISetting up: A simple banking examplePrerequisitesConnecting and ... The pos … | Continue reading


@foojay.io | 4 months ago

AI Newsletter #1

Table of Contents There is a lot going on in today's technological world, but the most intense and vibrant area is undoubtedly the field of artificial intelligence. After brainstorming, our Java Champion Education group agreed to create a newsletter with ... The post AI Newslette … | Continue reading


@foojay.io | 4 months ago

Spring Cloud Stream: Event-Driven Architecture – Part 1

Table of Contents The Role of MessageBrokersFrameworks or Binder ImplementationsSpring Cloud Stream: The SolutionKey Features:LightWeight Architecture with Spring Cloud StreamTransition to Spring Cloud Stream:ConclusionReferences Envision operating a successful e-commerce platfor … | Continue reading


@foojay.io | 4 months ago

Foojay Podcast #76: DevBcn Report, Part 1 – Learn from the Community

Table of Contents VideoPodcast (Audio only)Content In early July, the DevBcn conference in Barcelona featured a diverse lineup of speakers, covering topics across multiple technology domains. Geertjan Wielenga took the camera and microphone with him to Spain. Together with Nacho … | Continue reading


@foojay.io | 4 months ago

Foojay Podcast #76: DevBcn Report, Part 1 – Learn from the Community

Table of Contents VideoPodcast (Audio only)Content In early July, the DevBcn conference in Barcelona featured a diverse lineup of speakers, covering topics across multiple technology domains. Geertjan Wielenga took the camera and microphone with him to Spain. Together with Nacho … | Continue reading


@foojay.io | 4 months ago

Video series “JavaFX In Action”, Part 5 with Cormac Redmond (KafkIO), Brian Schlining (Annotating the Deep-Sea Wildlife), Gerrit Grunwald (JavaFX Libraries), Dirk Lemmermann (JavaFX Libraries and Applications, JFX Central)

Table of Contents Cormac Redmond: KafkIO, the Kafka UI for Engineers and AdminsBrian Schlining: Annotating the Deep-Sea WildlifeGerrit Grunwald: Creator of Many Amazing JavaFX LibrariesDirk Lemmermann: Creator of JavaFX Libraries and ApplicationsJavaFX LibrariesJFX CentralSenapt … | Continue reading


@foojay.io | 4 months ago

How to Make a RAG Application With LangChain4j

Table of Contents Why use RAG?Use cases for RAGLangChain4J for RAGMongoDB for RAGPrerequisitesOur dependenciesSetting up MongoDB and our embedding storeMongoDB setupConfiguring the embedding storeCreating our embedding modelConfiguring our chat modelHow to load our dataParameters … | Continue reading


@foojay.io | 4 months ago

Understanding MCP Through Raw STDIO Communication

Table of Contents Deep Dive into the Model Context ProtocolUnderstanding MCP Through Raw STDIO CommunicationWhy STDIO? The Power of Universal CommunicationUnderstanding the JSON-RPC Message FlowClient → Server: Initialization RequestServer → Client: Initialization ResponseThe Mes … | Continue reading


@foojay.io | 4 months ago

🚀 Document Your Spring Boot APIs with Redocusaurus in Minutes 🦕

Document Your Spring Boot APIs with Redocusaurus in Minutes The post 🚀 Document Your Spring Boot APIs with Redocusaurus in Minutes 🦕 appeared first on foojay. | Continue reading


@foojay.io | 4 months ago

Getting Started With Scala

Why is Scala so useful for data engineering? Some guides and videos to get started based on our experiences at Quantexa The post Getting Started With Scala appeared first on foojay. | Continue reading


@foojay.io | 4 months ago

Sustainability Starts with Your Runtime: Meet a Green JVM

Table of Contents Sustainable engineering in action Cost and carbon reduction: an illustrative example Net-zero goals start at the platform levelReady to see the difference? Reducing spend in the cloud is a top priority for many organizations, and a high-performance Java platform … | Continue reading


@foojay.io | 4 months ago

The Great Data Reimagination: From Static to Agile in the AI Era

Table of Contents The Data Architecture Identity CrisisThe Adaptive Approach: Prioritizing Developer SpeedAI-Native Platforms Are the Future We’re in the middle of a fundamental change in how enterprise software works. In the next decade, your database will become your AI. ... Th … | Continue reading


@foojay.io | 4 months ago

Testing an OpenRewrite Recipe

Table of Contents The naive approachThe nominal approachDon't forget cyclesCriticismsConclusion For the last two weeks, I've kicked the tires of OpenRewrite. At first, I created a recipe to move Kotlin source files as per the official recommendations with a set ... The post Testi … | Continue reading


@foojay.io | 4 months ago

Foojay Podcast #75: JCON Report, Part 4 – Tips and Tricks for Java Devs

Table of Contents VideoPodcast (audio only)Content This is the final part of the JCON 2025 interviews with a lot of tips and tricks! In the three previous podcasts, we featured interviews from the JCON conference on "Being a better Java ... The post Foojay Podcast #75: JCON Repor … | Continue reading


@foojay.io | 4 months ago

New AI Conference For And By Developers

The post New AI Conference For And By Developers appeared first on foojay. | Continue reading


@foojay.io | 5 months ago

How I Improved Zero-Shot Classification in Deep Java Library (DJL) OSS

Table of Contents TL;DR:What’s Zero-Shot Classification (and Why It Matters)Integrating a Zero-Shot Classification Model with the Deep Java LibraryDependenciesThe Criteria ClassLoading and using the modelUsing different modelsUsing a model that is not available in the Model ZooLo … | Continue reading


@foojay.io | 5 months ago

Building a Spring Boot CRUD Application Using MongoDB’s Relational Migrator

Table of Contents Pre-requisitesRelational MigratorMigrating the data from the PostgreSQL schema to MongoDBAnalysing the Postgres schemaCreating mappings to generate the equivalent MongoDB schemaMigrating the data into MongoDBCode generation with Relational MigratorBuilding Sprin … | Continue reading


@foojay.io | 5 months ago

CAP in the Pocket: Developing Java Applications on your Phone

Table of Contents TermuxDevelop Directly in TermuxUse an Emulated UbuntuSAP CAP SFlightBuilding and Running SAP CAP SFlightModifying the Application via VSCodeAndroid Linux TerminalExtra: CAP-in-the-Pocket VSCode ExtensionConclusion Smartphones are more powerful then ever, with p … | Continue reading


@foojay.io | 5 months ago

Carbon Aware Job Processing With JobRunr v8

Table of Contents What is JobRunr?Carbon Aware Job ProcessingCarbon Aware ConfigurationWhat If There Is No Forecast?Conclusion As we produce, mutate, configure, and consume more and more data in various shapes and forms, think: video on demand, AI ingestion and generation ... The … | Continue reading


@foojay.io | 5 months ago

When ReadyNow Can Only Compile on Traffic Loads

Table of Contents Compilation only happens on traffic loadsReadyNow waits for class loadingHow to fix this?Identifying the problemCalling the identified codeReadiness checkExample with Spring PetclinicRun without a ReadyNow profileRun with a ReadyNow profileGenerational ReadyNow … | Continue reading


@foojay.io | 5 months ago

Data Modeling for Java Developers: Structuring With PostgreSQL and MongoDB

Table of Contents Relationships in databasesOne-to-one relationshipOne-to-many relationshipMany-to-many relationshipRelational vs. document databasesPostgres implementation with JavaMongoDB implementation with JavaScalability and performanceMigration considerationsRethinking sche … | Continue reading


@foojay.io | 5 months ago

Java 21+ Not Working on the Raspberry Pi Zero 2

Table of Contents Problem on Raspberry Pi Zero 2Differences Between RPi Zero 2 and RPi 4Changes in Java 21WorkaroundCompare Boards This story is about how "Write Once, Run Anywhere" got broken in a specific use case. It reveals the complexity ... The post Java 21+ Not Working on … | Continue reading


@foojay.io | 5 months ago