Mengenal Event-Driven Architecture dengan Bahasa Sederhana

 

Mengenal Event-Driven Architecture dengan Bahasa Sederhana

Pernahkah Anda membeli barang di marketplace lalu langsung menerima notifikasi pembayaran berhasil, email konfirmasi, hingga informasi bahwa pesanan sedang diproses? Menariknya, semua proses tersebut bisa terjadi hampir secara bersamaan tanpa harus menunggu satu sama lain selesai.

Di balik pengalaman yang terasa cepat itu, terdapat sebuah konsep yang banyak digunakan oleh perusahaan teknologi modern, yaitu Event-Driven Architecture (EDA).

Meskipun namanya terdengar rumit, sebenarnya konsep ini cukup mudah dipahami. Bahkan, kita sering menemukannya dalam kehidupan sehari-hari tanpa menyadarinya.

Pada artikel ini, kita akan mengenal Event-Driven Architecture dengan bahasa yang sederhana sehingga siapa pun, termasuk pemula di dunia teknologi, dapat memahami cara kerjanya.

Apa Itu Event-Driven Architecture?

Event-Driven Architecture (EDA) adalah sebuah pendekatan dalam membangun sistem perangkat lunak yang bekerja berdasarkan peristiwa (event).

Event sendiri adalah suatu kejadian yang memicu sistem untuk melakukan tindakan tertentu.

Contoh event antara lain:

  • Pengguna melakukan login.
  • Pembayaran berhasil.
  • Pesanan dibuat.
  • Foto berhasil diunggah.
  • Sensor mendeteksi suhu tinggi.
  • Pengguna mengklik tombol "Daftar".

Begitu sebuah event terjadi, sistem akan mengirimkan informasi tersebut kepada komponen lain yang membutuhkan. Komponen-komponen tersebut kemudian menjalankan tugasnya masing-masing tanpa harus saling menunggu.

Analogi Sederhana

Bayangkan sebuah restoran.

Saat pelanggan memesan makanan, pelayan menuliskan pesanan tersebut.

Setelah itu secara bersamaan:

  • Dapur mulai memasak.
  • Kasir mencatat transaksi.
  • Bagian minuman menyiapkan minuman.
  • Sistem antrean memperbarui nomor pesanan.

Semua bagian bekerja berdasarkan event "pesanan baru dibuat".

Tidak ada bagian yang harus menunggu bagian lain selesai terlebih dahulu.

Begitulah konsep dasar Event-Driven Architecture.

Bagaimana Cara Kerjanya?

Secara umum terdapat beberapa komponen utama.

1. Producer (Penghasil Event)

Producer adalah pihak yang menghasilkan suatu event.

Contohnya:

  • Website
  • Mobile App
  • Sensor IoT
  • Mesin ATM

Misalnya pengguna menekan tombol Checkout.

Itulah event yang dikirimkan.

2. Event Broker

Event tidak langsung dikirim ke semua sistem.

Biasanya event akan masuk terlebih dahulu ke sebuah Message Broker atau Event Broker.

Broker bertugas seperti kantor pos.

Ia menerima pesan lalu mendistribusikannya kepada siapa saja yang membutuhkan.

Beberapa teknologi yang populer:

  • Apache Kafka
  • RabbitMQ
  • Amazon EventBridge
  • Google Pub/Sub
  • Azure Event Grid

3. Consumer

Consumer adalah sistem yang menerima event.

Satu event dapat diterima oleh banyak consumer sekaligus.

Sebagai contoh event:

"Pembayaran Berhasil"

Consumer yang menerima bisa berupa:

  • Sistem Email
  • Sistem Gudang
  • Sistem Pengiriman
  • Sistem Reward
  • Dashboard Penjualan
  • Sistem Akuntansi

Semuanya bekerja secara mandiri.

Contoh Nyata dalam Kehidupan Sehari-hari

Misalnya Anda membeli laptop di sebuah marketplace.

Saat pembayaran berhasil, banyak proses langsung berjalan.

  • Email konfirmasi dikirim.
  • Gudang mulai menyiapkan barang.
  • Kurir menerima permintaan pengiriman.
  • Riwayat transaksi diperbarui.
  • Cashback ditambahkan.
  • Penjual mendapatkan notifikasi.
  • Dashboard penjualan bertambah.

Semua proses dipicu oleh satu event saja:

"Pembayaran Berhasil".

Mengapa Banyak Perusahaan Menggunakannya?

Perusahaan teknologi besar membutuhkan sistem yang mampu melayani jutaan pengguna setiap hari.

Jika semua proses dilakukan secara berurutan, sistem akan menjadi lambat.

Dengan Event-Driven Architecture:

  • pekerjaan dapat dijalankan secara paralel,
  • layanan tidak saling bergantung secara ketat,
  • sistem menjadi lebih cepat,
  • dan lebih mudah dikembangkan.

Karena alasan inilah pendekatan ini banyak digunakan pada layanan digital berskala besar.

Kelebihan Event-Driven Architecture

1. Lebih Cepat

Berbagai proses dapat berjalan bersamaan sehingga pengguna tidak perlu menunggu terlalu lama.

2. Mudah Dikembangkan

Saat perusahaan ingin menambahkan fitur baru, cukup membuat consumer baru tanpa mengubah sistem utama.

3. Fleksibel

Setiap layanan dapat menggunakan bahasa pemrograman maupun teknologi yang berbeda.

4. Mudah Diskalakan

Jika salah satu layanan menerima beban tinggi, hanya layanan tersebut yang perlu ditingkatkan kapasitasnya.

5. Cocok untuk Microservices

EDA menjadi pasangan yang sangat baik untuk arsitektur Microservices karena masing-masing layanan dapat saling berkomunikasi melalui event.

Kekurangan Event-Driven Architecture

Walaupun memiliki banyak kelebihan, EDA juga mempunyai beberapa tantangan.

Kompleksitas Lebih Tinggi

Jumlah event yang banyak membuat alur sistem menjadi lebih sulit dipahami.

Sulit Melakukan Debugging

Karena proses berlangsung secara asynchronous, mencari sumber kesalahan memerlukan alat monitoring yang baik.

Membutuhkan Infrastruktur Tambahan

Biasanya diperlukan message broker seperti Kafka atau RabbitMQ agar event dapat dikelola dengan baik.

Konsistensi Data

Pada beberapa kasus, data di setiap layanan tidak langsung diperbarui secara bersamaan sehingga perlu strategi sinkronisasi yang tepat.

Siapa yang Cocok Menggunakan EDA?

Event-Driven Architecture sangat cocok untuk:

  • Marketplace
  • Aplikasi perbankan
  • Sistem pembayaran digital
  • Media sosial
  • Aplikasi chat
  • IoT (Internet of Things)
  • Smart Home
  • Monitoring industri
  • Sistem logistik
  • Platform streaming

Namun untuk aplikasi sederhana seperti sistem kasir kecil atau website profil perusahaan, pendekatan ini sering kali belum diperlukan.

Contoh Alur Event yang Mudah Dipahami

Bayangkan terdapat sebuah aplikasi toko online.

Alurnya seperti berikut:

Pengguna Checkout
        │
        ▼
 Event Dibuat
        │
        ▼
 Event Broker
   │    │    │    │
   ▼    ▼    ▼    ▼
 Email  Gudang  Kurir  Reward

Satu event dapat mengaktifkan banyak layanan sekaligus.

Tips Belajar Event-Driven Architecture

Jika Anda baru mulai belajar, tidak perlu langsung mempelajari teknologi yang kompleks.

Urutan belajar yang disarankan:

  1. Pahami konsep Event.
  2. Pelajari Message Queue.
  3. Kenali RabbitMQ.
  4. Belajar Apache Kafka.
  5. Pelajari Microservices.
  6. Coba membuat proyek sederhana menggunakan event.

Dengan memahami konsep dasarnya terlebih dahulu, proses belajar teknologi pendukung akan terasa jauh lebih mudah.

Kesimpulan

Event-Driven Architecture adalah salah satu pendekatan modern yang membuat sistem bekerja berdasarkan kejadian (event). Alih-alih menjalankan semua proses secara berurutan, pendekatan ini memungkinkan banyak layanan merespons sebuah event secara bersamaan sehingga aplikasi menjadi lebih cepat, fleksibel, dan mudah dikembangkan.

Meskipun penerapannya memerlukan perencanaan yang baik serta infrastruktur tambahan, manfaatnya sangat terasa pada aplikasi berskala besar seperti marketplace, layanan pembayaran, media sosial, hingga sistem Internet of Things (IoT). Bagi Anda yang ingin mendalami dunia pengembangan perangkat lunak modern, memahami konsep Event-Driven Architecture merupakan langkah penting karena menjadi fondasi dari banyak sistem digital yang kita gunakan setiap hari.

Komentar