Study
Actix

Arsitektur Actix: Actor Model & Performa

Penjelasan

Actix awalnya dibangun di atas actor model (lewat crate `actix` yang lebih dulu ada sebelum `actix-web`), di mana setiap unit kerja adalah "actor" yang berkomunikasi lewat pesan asynchronous, terisolasi satu sama lain. Meski `actix-web` versi modern lebih banyak memakai `async`/`await` biasa dari Tokio runtime tanpa mengharuskan kamu menulis actor secara eksplisit, warisan arsitektur ini membuat Actix sangat efisien menangani concurrency tinggi. Dikombinasikan dengan Rust yang tanpa garbage collector dan memory-safe lewat sistem ownership, Actix secara konsisten menjadi salah satu framework web tercepat di benchmark lintas bahasa (TechEmpower), jauh berbeda pendekatan dari framework interpreted seperti Rails yang mengutamakan kecepatan development, bukan runtime.

Contoh Konsep

// Actix-web modern: async fn biasa, dijalankan di atas Tokio runtime
// setiap request ditangani oleh worker thread secara concurrent
use actix_web::{get, Responder};

#[get("/status")]
async fn status() -> impl Responder {
    // handler ini bisa berjalan bersamaan (concurrent) dengan ribuan request lain
    "OK"
}

Praktikum

Lengkapi konfigurasi jumlah worker thread HttpServer agar sesuai jumlah core CPU.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Secara default `HttpServer` sudah membuat worker sejumlah core CPU yang tersedia — biasanya kamu tidak perlu mengubah `.workers()` manual kecuali punya alasan spesifik seperti membatasi resource di container.