Hi everyone ππ»ββοΈ,
We just started trying Quarkus π
api-transitaires was the first, it's time to do some quick feedback now π’
π First, I know that it's already a 3 years old framework (some npm
libs don't live that long), but in some J
Companies the investissement to set up some Spring[-Boot] π developers has been challenging, so the replacement has to be valuable (or fin valab)
Why to move from Spring-Boot ?
We have a lot of Sping-Boot apps and we are going forward to k8s in serverless way, so we did some tests with Spring-Native.
It worked π, but not so smoothly because of Spring's long history π which led us to more recent alternatives like π Quarkus.
Why this app ?
api-transitaires it's a very basic one-endpoint REST API that serves the list of freight forwarders that manage customs clearance on New-Caledonia π«π·.
The main goal was to try Quarkus in a end to end way, in our GitHub CI : native app, Docker..
Ok, let's go now..
1# IDE integration π - VSCode plugin
I used since almost 2 years VScode, I was happy to discover a Quarkus's plugin who does the job :
- generate new project : like SprinBoot does π
- launch and debug : ok, relies to
mvn
but it works most of the time π.. sometimes it switched off without saying goodbye _(ex: after adding a Quarkus's extension). Otherwise, I don't like that they preferred to use a specific menu for that rather than VSCode's classic "run and debug" π
βοΈ What I appreciate :
- faster code change / test cycle out-of-the box π¦ : do the change, switch to browser and the change is already applied (I experienced a refresh the browser twice cycle with Spring-boot Devtools)
βοΈ Nice to have :
- autocompletion on
application.properties
as Spring-Boot's plugin does
2# Coding a Rest API π¨π»βπ» - the standard way
While Spring has chosen to make its own annotations (almost a copy of the standard), with Quarkus we go back to the Java standard's ones. Ok, JSR's are not so fancy π, but less intrusive π.
3# Docs π - self sufficient π
No need to rely on other documentations to do basic things, Quarkus's guides are in my opinion succinct, practical (getting started style) and well referenced from google π€.. 1st result is the official one !
Game changing after years of Spring's empty shell getting started guides or JavaDoc style reference documentation π΅βπ«
π I used :
4# Fast ππ¨ - minimum included
-
Lighter & faster, some fresh metrics from a recent migration from Spring-Boot (colisnc-api) :
Minimum included : it's a philosophy and I like it β€οΈ (even the
yaml
configuration is not included : an extension is needed)
5# Native β‘οΈ - the way is paved π£
- It seems that it's was on the Quarkus cookbook since the beginning, not added at the end : Spring Native is still in experimentation.
- Light by default : some basic things are not provided by default like SSL protocol support, but it's easy to do
quarkus.ssl.native=true
6# Monitoring / dev tooling - Side dishes π₯
- less than actuator, but enough in my mind : health, Swagger
- Nice to have online web dev that gives some basic but useful metrics (as others do since a while, like Symfony π)
Resources
- api-transitaires : first app
- colisnc-api : first migration from Springboot done within 1h30 β±
π #jfokus2022 : Quarkus [...] back from the Future
adriens for opt-nc γ» Jul 12 '22
Cheers π»