Event-Driven Architecture

Menengah

Pola arsitektur di mana komponen sistem berkomunikasi lewat events secara asinkron, bukan saling manggil langsung. Satu bagian sistem 'nembak' event, lainnya bereaksi sesuai kebutuhan masing-masing.

Apa itu Event-Driven Architecture?

Event-Driven Architecture (EDA) adalah cara merancang sistem di mana antar bagian sistem nggak perlu saling kenal langsung. Yang terjadi: satu komponen melempar event ("ada pesanan baru!"), lalu komponen lain yang peduli bereaksi masing-masing tanpa perlu ada yang ngatur satu per satu.

Bayangin kayak grup WhatsApp. Kamu posting pengumuman di grup, dan semua anggota yang relevan baca sendiri, lalu bertindak sesuai tugasnya. Kamu nggak perlu telpon satu-satu.

Tiga Pemain Utama

Dalam EDA, ada tiga peran yang selalu muncul:

  • Producer: pihak yang menghasilkan event. Misalnya, payment service yang bilang "pembayaran sukses"
  • Event Broker: perantara yang nampung dan mendistribusikan events, contoh: Apache Kafka, RabbitMQ
  • Consumer: pihak yang dengerin event dan bereaksi, misalnya email service, inventory service, analytics service

Perbandingan dengan Request-Driven Architecture

AspekRequest-DrivenEvent-Driven
KomunikasiLangsung (A panggil B)Lewat event broker
CouplingTight (harus tahu URL/interface)Loose (cukup tahu nama event)
SkalabilitasTerbatas, bottleneck di callerLebih mudah scale horizontal
KompleksitasLebih sederhanaLebih kompleks, butuh broker
TracingMudah di-debugPerlu tooling tambahan
Cocok untukCRUD sederhanaReal-time, high-throughput

Kenapa Ini Penting untuk Data?

Di dunia data engineering, EDA sering muncul dalam streaming pipeline. Contoh nyatanya: setiap transaksi di Tokopedia menghasilkan event yang langsung bisa dikonsumsi oleh fraud detection, recommendation engine, dan analytics dashboard secara bersamaan tanpa nunggu satu selesai dulu.

EDA juga jadi tulang punggung arsitektur seperti CQRS (Command Query Responsibility Segregation) dan Event Sourcing, di mana setiap perubahan state sistem direkam sebagai rangkaian events yang bisa di-replay.

Kapan Pakai EDA?

EDA cocok kalau sistem kamu punya banyak komponen yang perlu bereaksi terhadap perubahan yang sama, atau kalau kamu butuh decoupling antar tim yang berbeda. Tapi kalau sistemnya masih sederhana dan skalanya kecil, EDA bisa overkill dan nambahin kompleksitas yang nggak perlu. Mulai dari request-response biasa, upgrade ke EDA kalau udah ada kebutuhan nyata.

Lanjut Latihan

Udah paham Event-Driven Architecture? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →