Posts

Showing posts with the label Quarkus

Memahami Fault Tolerance di Quarkus MicroProfile

Image
Dalam pengembangan aplikasi berbasis microservices, kegagalan adalah hal yang pasti terjadi entah itu layanan yang lambat, API eksternal yang tidak stabil, atau koneksi jaringan yang tiba-tiba putus.  Nah, Quarkus punya solusi bawaan untuk menghadapi hal ini melalui MicroProfile Fault Tolerance , yang diimplementasikan oleh SmallRye Fault Tolerance . Dengan fitur ini, Quarkus membantu aplikasi Anda tetap stabil, tangguh, dan tidak langsung crash saat terjadi gangguan. Apa Itu MicroProfile Fault Tolerance? MicroProfile Fault Tolerance adalah salah satu spesifikasi di dalam Eclipse MicroProfile yang berfokus pada ketahanan layanan (service resilience) . Tujuannya adalah memberikan mekanisme otomatis agar aplikasi bisa: Mendeteksi dan menangani kegagalan sementara (transient failure) Mencegah efek domino dari layanan yang rusak Memberikan respon alternatif (fallback) ketika sistem utama gagal Di Quarkus, semua ini sudah diurus oleh SmallRye Fault Tolerance , tanpa per...

Dari Spring Boot ke Quarkus: Memahami JAX-RS, MicroProfile, dan SmallRye

Image
Bagi banyak developer Java, Spring Boot adalah pilihan utama untuk membuat aplikasi REST API . Annotation seperti @RestController , @GetMapping , atau @PostMapping sudah menjadi makanan sehari-hari. Namun, saat mulai mengenal Quarkus , sering muncul pertanyaan: “Kalau di Quarkus bikin REST API pakai apa?” “Apa itu MicroProfile dan SmallRye, dan bagaimana perannya di Quarkus?” Artikel ini mencoba memberi penjelasan sederhana bagi pemula, khususnya mereka yang berasal dari dunia Spring Boot. 1. REST API di Quarkus: Dasarnya JAX-RS Di Quarkus, pembuatan REST API menggunakan standar Jakarta RESTful Web Services (JAX-RS) , bukan Spring MVC. Contoh endpoint sederhana di Quarkus: import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; @Path("/hello") public class HelloResource {     @GET     @Produces(MediaType.TEXT_PLAIN)     public String hello() {         return "Hel...

Tutorial: Menjalankan & Membangun Aplikasi Quarkus di GraalVM (Ubuntu 24.04 LTS)

Image
  Quarkus dan GraalVM . Kombinasi keduanya menghadirkan ekosistem modern yang mampu menjawab tantangan cloud-native: startup dalam hitungan milidetik, konsumsi memori yang minimal, serta fleksibilitas untuk berjalan di berbagai lingkungan, mulai dari laptop pengembang hingga platform Kubernetes. Artikel ini akan memandu Anda langkah demi langkah membangun aplikasi Quarkus di Ubuntu 24.04 dengan GraalVM, sekaligus menyingkap alasan mengapa keduanya menjadi pasangan ideal bagi developer masa kini.   Proyek contoh: QYBoilerPlate ( Repo Link  branch: tut_qute_login) OS: Ubuntu 24.04.1 LTS Build Tool: Gradle Dockerfiles: sudah tersedia di src/main/docker/ ( Dockerfile.jvm , Dockerfile.native , dll.) Siapkan dan Install paket build-essential:  sudo apt update sudo apt install build-essential libz-dev libstdc++-12-dev sudo apt install zlib1g-dev sudo apt install libstdc++6 gcc --version     1. Menjalankan Aplikasi Quarkus di GraalVM Kenapa pakai Graal...

Quarkus : User login, Logout dan Register dengan Qute Template Engine

Image
  Dalam dunia pengembangan aplikasi web, hampir setiap sistem membutuhkan mekanisme autentikasi seperti login , registrasi , hingga logout . Dengan framework modern seperti Quarkus , proses ini bisa dibuat lebih sederhana, cepat, dan efisien. Ditambah lagi, integrasi dengan Qute templating engine bawaan Quarkus — memungkinkan kita membangun antarmuka web yang ringan namun tetap powerful. Pada tulisan ini, kita akan membahas langkah demi langkah bagaimana membangun sistem User Registration dan Login menggunakan Quarkus, Hibernate Panache untuk manajemen database, serta Qute untuk rendering halaman seperti /login , /registration , hingga /dashboard . Dengan pendekatan ini, kamu akan melihat betapa mudahnya menggabungkan kekuatan Quarkus + Qute untuk membuat aplikasi web full-stack dengan fitur autentikasi dasar.  1) Tambah dependencies (Gradle) Di build.gradle , pastikan ini ada (yang penting: bridge Qute ↔ REST dan BCrypt untuk hashing): dependencies { implementatio...