Belajar Quarkus - Sejarah, Latar Belakang & Mengapa Membutuhkan Quarkus
Episode 1 of 24

Belajar Quarkus - Sejarah, Latar Belakang & Mengapa Membutuhkan Quarkus

Episode ini mengupas mengapa Quarkus lahir: masalah startup lambat dan memory besar aplikasi Java, evolusi dari Jakarta EE klasik menjadi framework cloud-native, perbandingannya dengan Spring Boot, serta posisi Quarkus 3.x di ekosistem modern.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Java sudah menjadi bahasa enterprise selama lebih dari dua dekade. Tapi di era cloud-native, aplikasi Java klasik menghadapi kritik tajam: startup yang lambat dan konsumsi memory yang besar. Ketika sebuah pod di Kubernetes harus diganti setiap beberapa menit, waktu startup 10 detik terasa sangat mahal.

Quarkus lahir untuk menjawab masalah ini. Ia adalah framework Java yang dirancang khusus untuk container-first dan Kubernetes-native, dengan dukungan penuh untuk native image GraalVM. Episode ini membawa kalian memahami sejarah, latar belakang, dan mengapa Quarkus dibutuhkan di tengah dominasi Spring Boot.

Series ini memakai pendekatan praktis: setiap konsep dijelaskan dengan contoh nyata yang bisa kalian jalankan sendiri. Sebelum lanjut, pastikan Java 17 atau 21, Maven atau Gradle, dan editor kesayangan kalian sudah siap — detail lengkap ada di episode 0.

Sejarah dan Latar Belakang Quarkus

Quarkus pertama kali diperkenalkan oleh Red Hat pada tahun 2018 dan dirilis secara resmi pada 2019. Namanya diambil dari kata quark — partikel elementer terkecil — menyiratkan harapan menjadi framework Java yang sangat kecil dan cepat. Quarkus dibangun di atas teknologi yang sudah matang: CDI (Contexts and Dependency Injection), JAX-RS untuk REST, dan Hibernate untuk persistence.

Kunci revolusinya ada pada konsep build-time augmentation. Sebagian besar pekerjaan yang biasanya dilakukan saat runtime — seperti scanning bean dan membaca metadata — dipindahkan ke fase build. Hasilnya adalah aplikasi yang di runtime hanya menjalankan inti yang benar-benar dibutuhkan.

Evolusi Framework Java

Perjalanannya panjang: dari J2EE yang berat, ke Java EE, lalu Jakarta EE yang lebih modular, hingga munculnya framework microservice seperti Spring Boot dan Micronaut. Quarkus hadir sebagai titik temu: ia menawarkan familiaritas stack Java EE/CDI namun dengan pendekatan cloud-native dan reactive yang modern.

Titik balik lain adalah lahirnya GraalVM: kemampuan menjalankan aplikasi Java sebagai native executable tanpa JVM. Quarkus memanfaatkan ini lewat integrasi native image yang matang, sesuatu yang sulit ditiru framework lain secara seamless.

Masalah yang Diselesaikan Quarkus

Startup Time dan Memory Footprint

Dua masalah paling dikeluhkan dari Java tradisional. Perbandingan sederhananya:

Membandingkan startup
# Aplikasi Spring Boot di JVM biasanya 3-8 detik
# Quarkus JVM mode sekitar 0.5-1 detik
# Quarkus native image sekitar 0.01-0.1 detik
 
./mvnw quarkus:dev
# Output: Quarkus started in 0.723s. Listening on: http://localhost:8080

Dalam mode JVM saja, Quarkus sudah jauh lebih cepat dari framework tradisional berkat build-time augmentation. Dalam mode native image, startup bisa turun hingga puluhan milidetik dengan memory footprint yang jauh lebih kecil — sangat penting untuk fungsi serverless yang sering start dan stop.

Fast Reload untuk Developer

Quarkus memiliki live coding atau hot reload: perubahan pada kode Java, resource, atau konfigurasi langsung diterapkan tanpa restart manual. Ini memperpendek loop umpan balik developer dari hitungan detik menjadi hampir instan.

Cocok untuk Ekosistem Cloud-Native

Ekosistem modern menuntut aplikasi dipecah menjadi service kecil yang bisa di-deploy, di-scale, dan diganti secara independen. Startup cepat dan memory kecil yang dimiliki Quarkus membuat setiap service sangat murah dijalankan — cocok untuk skenario serverless, scale-to-zero, dan fungsi cloud yang sering start dan stop.

Perbandingan dengan Pendekatan Tradisional

Quarkus vs Spring Boot

Spring Boot adalah raksasa di ekosistem Java dan sangat cocok untuk banyak kasus. Namun Quarkus menawarkan keunggulan di area tertentu: startup lebih cepat, memory lebih kecil, dukungan native image kelas satu, dan arsitektur reactive yang lebih dalam. Spring Boot unggul dalam dokumentasi dan komunitas yang sangat besar.

Perbandingan pola yang sering dibahas:

AspekQuarkusSpring Boot
StartupSangat cepatSedang
Native imageKelas satuTerbatas
ReactiveDeep (Vert.x)Mendukung tapi lebih kompleks
Runtime Java EECDI, JAX-RSSpring native

Pilihan framework sangat tergantung kebutuhan. Quarkus bersinar untuk microservices, serverless, dan aplikasi yang harus hemat resource.

Jika tim kalian sudah nyaman dengan spesifikasi Jakarta EE, kurva belajarnya terasa singkat karena API-nya sama; yang berubah adalah cara kerja dan model eksekusi di belakang layar.

Quarkus vs Jakarta EE Klasik

Quarkus memakai standar Jakarta EE tetapi dengan pendekatan berbeda: semuanya diolah saat build time, bukan runtime. Ini membuat aplikasi Quarkus jauh lebih ringan daripada server aplikasi klasik seperti WildFly atau GlassFish yang membawa seluruh container saat runtime. Konsekuensinya, tidak ada komponen yang tidak terpakai — yang terinstall hanyalah yang benar-benar dibutuhkan aplikasi.

Rilis Terbaru dan Fitur Stabil

Saat series ini ditulis, rilis stabil berada di jalur Quarkus 3.x. Fitur stabil yang sudah matang:

  • Quarkus Dev UI: dashboard berbasis web untuk inspeksi aplikasi saat dev mode.
  • RESTEasy Reactive: implementasi REST berbasis Vert.x yang non-blocking.
  • Hibernate ORM dengan Panache: persistence tanpa boilerplate.
  • Quarkus Scheduler, SmallRye Reactive Messaging, dan OpenTelemetry yang sudah production-ready.
  • Extensible extension model: lebih dari 300 extension resmi.
  • Dev Services: database dan service pendukung berjalan otomatis dalam container saat mode dev.

Quarkus mengikuti ritme rilis cepat dengan LTS berkala. Cara cepat melihat versi kalian:

Cek versi Quarkus
quarkus --version
./mvnw quarkus:info

Perintah ./mvnw quarkus:info juga menampilkan versi Quarkus, versi Java, dan daftar extension yang terinstall — berguna untuk memastikan seluruh tim memakai versi yang sama.

Penutup

Episode ini menjelaskan mengapa Quarkus ada dan mengapa kalian perlu mempertimbangkannya: masalah startup lambat dan memory besar Java klasik, lahirnya Quarkus dari Red Hat, perbandingan dengan Spring Boot dan Jakarta EE, serta posisi Quarkus 3.x sebagai framework cloud-native yang stabil.

Inti yang harus dibawa pulang:

  • Quarkus lahir untuk menyelesaikan masalah startup lambat dan memory besar.
  • Build-time augmentation memindahkan kerja berat dari runtime ke fase build.
  • Quarkus memakai standar Jakarta EE tapi dengan pendekatan container-first.
  • Dalam mode native image, startup bisa mencapai puluhan milidetik.
  • Spring Boot dan Quarkus punya keunggulan masing-masing; Quarkus unggul di native dan reactive.
  • Quarkus 3.x adalah rilis stabil dengan lebih dari 300 extension resmi.

Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur utama Quarkus — cara kerja build-time augmentation di balik layar, live coding dan Dev UI, peran extension, serta bagaimana CDI container bekerja.

Pastikan seluruh tool dari episode 0 sudah terinstall, karena mulai episode berikutnya kalian akan langsung praktik.