Konsep Actor Model & Kenapa Akka
Penjelasan
Akka adalah toolkit di JVM (Scala/Java) untuk membangun aplikasi konkuren, terdistribusi, dan tangguh berdasarkan actor model. Dalam actor model, unit dasar komputasi bukan thread atau object biasa, melainkan actor: entitas yang punya state privat, menerima pesan lewat mailbox, dan memproses pesan satu per satu secara sekuensial. Actor tidak pernah berbagi memori dengan actor lain — satu-satunya cara berkomunikasi adalah mengirim pesan asinkron. Ini menghilangkan kebutuhan lock/mutex manual yang jadi sumber bug klasik di pemrograman konkuren (race condition, deadlock). Kenapa Akka dipilih dibanding thread/lock manual: (1) skalabilitas — jutaan actor ringan bisa hidup dalam satu JVM karena actor tidak dipetakan 1:1 ke thread OS; (2) fault tolerance built-in lewat supervision hierarchy — actor induk bisa otomatis me-restart actor anak yang gagal; (3) lokasi transparan — kode yang sama bisa jalan di actor lokal maupun actor di node lain (clustering) tanpa banyak perubahan. Akka dipakai di sistem yang butuh throughput tinggi dan toleransi kegagalan, seperti trading engine, sistem IoT, dan backend real-time.
Contoh Konsep
// Ilustrasi konsep: actor sebagai unit terisolasi
// Setiap actor punya:
// 1. State privat (tidak bisa diakses langsung dari luar)
// 2. Mailbox (antrian pesan masuk)
// 3. Behavior (cara memproses pesan)
// Perbandingan konseptual:
// Thread + shared state -> butuh lock manual, rawan race condition
// Actor -> isolasi penuh, komunikasi hanya lewat pesan asinkron
object KonsepActor {
// Pesan adalah data immutable yang dikirim antar actor
sealed trait Pesan
case class Sapa(nama: String) extends Pesan
// Actor memproses satu pesan pada satu waktu, tidak ada konkurensi internal
// sehingga state privat aman tanpa lock
}
Praktikum
Lengkapi komentar berikut dengan menjelaskan tiga alasan Akka lebih aman dibanding thread manual untuk kasus konkurensi tinggi, lalu tulis dalam bentuk daftar komentar Scala.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan bayangkan actor sebagai thread — satu JVM bisa menjalankan jutaan actor karena actor yang idle tidak menghabiskan thread OS. Pahami dulu konsep 'isolasi lewat pesan' sebelum masuk ke sintaks, karena mindset inilah yang membedakan Akka dari pemrograman konkuren tradisional.