Quarkus Benelux in Rotterdam
Last Thursday, the Quarkus Benelux meetup talks were hosted at our Rotterdam office. Now that the Covid-19 lockdowns are a thing of the past, I noticed this to be a more dynamic event; the attendance was higher and there was more energy in the air, in general. I think the tasty drinks and the warm food added to the fun too.
Quarkus on Java 21 by Willem Jan Glerum
Willem Jan, a software engineer at Lunatech, gave an insightful and informative presentation. He began by familiarizing the audience with Java’s evolution in terms of release cadence and the varying maturity levels of the features available in each Java release.
We examined both simple and complex examples of how
Record Patterns and
Pattern Matching for switch can be utilized. Willem guided us through the different flavours of threads like
Carrier Thread. It may sound like a lot of information, but Willem’s clear diagrams made the talk easy to follow.
We also explored how
Quarkus enables the writing of concurrent applications in a blocking, reactive, or virtual threads manner.
Switching between these styles of concurrent application development is as simple as using annotations!
However, these annotations should not be used indiscriminately. As the saying goes, ‘With great power comes great responsibility.’
Both reactive and virtual threads coding styles have their strengths and weaknesses which is why they should be chosen carefully based on the specific use case.
In the final segment of his talk, Willem guided us through the potential issues that can arise from improper use of virtual threads. These include:
Carrier thread pool elasticity
We gained insights on how to better identify these issues. Willem also demonstrated how
Quarkus facilitates the writing of tests
that specifically detect thread pinning issues using just a single, simple annotation.
The Quarkus Rainbow for FullStack/Web development by Andy Damevin
Andy, a Principal Software Engineer at Red Hat and the lead of the
Quarkus FullStack/Web team, gave an engaging presentation.
He began by briefly explaining what Quarkus is and how it enables the creation of faster, lighter applications.
The presentation continued in very interactive way, with the entire audience invited to participate in a game using their mobile phones. This was a fun version of the ‘freeze or die’ game, where each phone represented a player on screen. By shaking your phone, you could advance your player towards the finish line… provided you didn’t ‘die’ along the way!
The remainder of the talk was dedicated to explaining how
Quarkus simplifies the process of creating such an interactive and scalable game.
The extensions involved were:
Quinoa is an extension that streamlines the development, build, and serving of single-page apps or web components.
Web Bundler extension facilitates the bundling and minification of web app scripts dependencies and styles.
Qute is a typesafe templating engine that prioritizes user experience through the Quarkus Tools plugin.
Renarde is an extension for server-side web development based on
RESTEasy Reactive, enhanced for htmlx.
Andy showed how these extensions work harmoniously together within the same code base, making it easy to understand.
He demonstrated how to locally run both the server and client sides of the game, and illustrated how the
Playwright extension enables effective cross-browser
end-to-end testing of
Quarkus web applications.
To conclude, Andy demonstrated how simple it was to deploy the app to a Kubernetes cluster (in just 2 minutes!). We were then given another chance to play this entertaining game!
After the talks, most attendees lingered to ask further questions or share ideas with the speakers and each other, all while enjoying a beer… or perhaps a few.