Browsed by
Year: 2022

Quarkus Tip: Testing a Google Cloud function

Quarkus Tip: Testing a Google Cloud function

I recently contributed a PR to Quarkus that contains a testing framework for Google Cloud functions. Quarkus supports creating Google Cloud functions three different ways: Using the Google Cloud API. Using a Quarkus HTTP extension: RESTEasy, Reactive routes, Servlet, Spring Web. Using Funqy, the cloud provider agnostic Quarkus function API. But until now, to test these functions, you had to package them and launch them locally via the function invoker provided by the Google SDK. The function invoker is a…

Read More Read More

Java 20: what’s new ?

Java 20: what’s new ?

Now that Java 20 is features complete (Rampdown Phase One at the day of writing), it’s time to walk through all the functionalities that bring to us, developers, this new version. This article is part of a series on what’s new on the last versions of Java, for those who wants to read the others, here are the links: Java 19, Java 18, Java 17, Java 16, Java 15, Java 14, Java 13, Java 12, Java 11, Java 10, and Java 9. We…

Read More Read More

Testing a Java Google Cloud Function

Testing a Java Google Cloud Function

Until recently, testing a Google Cloud Function written in Java could be done via the invoker provided by the Google Cloud Functions SDK but not via a unit test. But this changed recently! Let’s take the following HTTP function as an example: public class HelloHttpFunction implements HttpFunction { @Override public void service(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception { Writer writer = httpResponse.getWriter(); writer.write(“Hello World”); } } After packaging the function into an über JAR, we can download the Google Cloud…

Read More Read More

Apache Pinot and its various types of indexes

Apache Pinot and its various types of indexes

Some time ago, I finally took the time to test Apache Pinot, you can find the story of my first experiments here. Apache Pinot is a distributed real-time OnLine Analytical Processing (OLAP) datastore specifically designed to provide ultra-low latency analytics, even at extremely high throughput. If you don’t know it, start by reading my introductory article before this one. One of the strengths of Pinot is its different types of indexes, it is these ones that we will explore in…

Read More Read More

Java 19: what’s new ?

Java 19: what’s new ?

Now that Java 19 is features complete (Rampdown Phase One at the day of writing), it’s time to walk throught all the functionalities that brings to us, developers, this new version. This article is part of a series on what’s new on the last versions of Java, for those who wants to read the others, here are the links: Java 18, Java 17, Java 16, Java 15, Java 14, Java 13, Java 12, Java 11, Java 10, and Java 9. JEP 405 :…

Read More Read More

Profiling a pod in Kubernetes with kubectl flame

Profiling a pod in Kubernetes with kubectl flame

Kubectl flame is a plugin for kubectl that allows you to profile applications in production with low overhead by generating FlameGraphs. It is a Yahoo project. It is installed via krew, the plugin manager for kubectl, and allows you to generate FlameGraphs for applications in Go, Java (all JVM languages), Python, Ruby, and NodeJS. After installing krew, you can install flame via: kubectl krew install flame. For each supported language, it will use a different profiler to generate a FlameGraph….

Read More Read More

Google Cloud Functions 2nd gen

Google Cloud Functions 2nd gen

Google has just released in beta the second generation of Google Cloud Functions. For those who are not yet familiar with Google Cloud Functions you can read my article Quarkus and Google Cloud Functions. This second generation brings: A longer maximum processing time: 60mn instead of 10mn. Instances up to 16GB/4vCPU instead of 8GB/4vCPU. The ability to have instances always available. Better concurrency management: up to 1000 concurrent calls per instance. CloudEvents support via EventArc: more than 90 events available….

Read More Read More

I finally took the time to test Apache Pinot

I finally took the time to test Apache Pinot

I’ve been wanting to test Apache Pinot for a very long time and I finally took the time to do it! First, a quick description of Pinot Pinot is a real-time distributed OLAP datastore, purpose-built to provide ultra low-latency analytics, even at extremely high throughput. It can ingest directly from streaming data sources or batch data sources. At the heart of the system is a columnar store, with several smart indexing and pre-aggregation techniques for low latency. Pinot was built…

Read More Read More