Sticky sessions with Apache APISIX – the demo

We’ve described the concept behind sticky sessions: you forward a request to the same upstream because there’s context data associated with the session on that node. However, if necessary, you should replicate the data to other upstreams because this one might go down. In this post, we are going to illustrate it with a demo. The overall design Design options …

Read More »

Understanding Security Vulnerabilities: A First Step in Preventing Attacks

When I was a teenager, our local telephone company introduced a new service – the premium phone calls (AKA 1-900 numbers). The fun part was that we discovered a workaround to these charges by dialing the sequential local numbers which these 1-900 numbers would redirect to. If the “support number” for the 1-900 was 555-555 we would dial every number …

Read More »

Billions of Messages Per Minute Over TCP/IP

Key Takeaways Data consistency is critical when communicating between software components on different machines to ensure information remains in tact. Low-latency data exchange requires a different approach than common formats. Chronicle’s open-source Wire library provides a highly efficient means of marshalling and unmarshalling data for transmission to and from Chronicle Queue. Recent additions to the library extend its use with …

Read More »

Running a CRaC Java application on Raspberry Pi

With the April release of the Zulu Build of OpenJDK, Azul announced the integration of CRaC in its version 17 of Java for Linux. Coordinated Restore at Checkpoint (CRaC) is a feature introduced in OpenJDK to improve Java’s application startup and warmup times to milliseconds from seconds or even minutes, by allowing a running application to pause, snapshot its state, …

Read More »

A Dissection of Java JDBC to PostgreSQL Connections, Part 2: Batching

This is the second part of a series where I look into how Java JDBC connections to PostgreSQL are working, to understand how to optimally implement them. If you’ve landed on this article, it might be a good idea to read my first article as well, which gives an introduction and shares how JDBC communicates with PostgreSQL using simple and …

Read More »

Seven Reasons You Should Not Ignore Flaky Tests

Imagine the scenario: you have good automated test coverage of your application code; you run your tests locally; and you have a Continuous Integration (CI) environment which runs your tests regularly. You’re doing everything right, right? Except… sometimes tests fail, and you’re not sure why. When you run the test locally, or a second time in the same environment, they …

Read More »

Foojay Status Report: July 2023

Since the start of the Friends of OpenJDK community in April 2020, we’ve had half yearly status reports, providing the highlights of the past half year, together with some stats and analysis, ending with roadmaps for the next upcoming periods. Note: Here are the earlier reports, from January – June 2021, July – December 2021, and January – June 2022. …

Read More »

Working on An Unfamiliar Codebase

In our profession, it’s common to work on an unfamiliar codebase. It happens every time one joins a new project or even needs to work on a previously untouched part in big ones. This occurrence is not limited to a developer having to fix a bug; it can be a solution architect having to design a new feature or an …

Read More »

JavaFX Links of June 2023

Again a lot has been shared this month in the jfx-central.com #LinksOfTheWeek! And that website itself is “under heavy construction” as version 2 is getting a completely new design and several improvements. Your help is wanted! See the last section of this summary… Core Rampdown Phase 1 (RDP1) for JavaFX 21 starts on July 13, 2023 at 16:00 UTC (09:00 …

Read More »