Event-driven architecture (EDA) merupakan pola arsitektur perangkat lunak yang berfokus pada komunikasi dan koordinasi berbagai komponen atau layanan dalam suatu sistem melalui pertukaran events.
Pola ini menggantikan arsitektur “request/response” di mana layanan harus menunggu balasan sebelum dapat melanjutkan ke tugas berikutnya.
Dalam arsitektur Event-driven, komponen atau layanan akan berkomunikasi secara asynchronous dengan memproduksi dan menggunakan events, yang memungkinkan untuk bereaksi terhadap suatu perubahan dan pemicu dengan cara yang fleksibel dan terpisah.
Bagaimana Cara Kerja Event-Driven Architecture ?
Event-driven architecture terdiri dari Produsen dan Konsumen event. Produser akan mendeteksi suatu event dan merepresentasikannya sebagai pesan.
Setelah suatau event terdeteksi, maka event tersebut ditransmisikan dari produser ke konsumen melalui event channel yang akan diproses secara asynchronous.
Konsumen event perlu diberi tahu ketika suatu event telah terjadi. Mereka mungkin memproses event tersebut atau mungkin hanya terpengaruh olehnya. Platform pemrosesan event akan mengeksekusi respons yang benar terhadap suatu event.
Apache Kafka adalah platform streaming data terdistribusi yang merupakan pilihan pemrosesan event yang populer. Apache Kafka mendukung berbagai kasus penggunaan di mana throughput dan skalabilitas tinggi sangat penting.
Contoh Event-driven Architecture
Berikut ini contoh dari arsitektur Event-driven.
Manfaat Event-Driven Architecture
- Dengan memisahkan layanan yang anda miliki, maka layanan tersebut hanya mengetahui keberadaan perute, bukan datu sama lain. Dengan begitu layanan anda dapat saling berinteraksi akan tetapi jika ada masalah pada satu layanan maka layanan lain tetap berjalan.
- Anda tidak perlu lagi menulis kode kustom untuk memilih, memfilter, dan merutekan peristiwa; perute peristiwa akan otomatis memfilter dan mendorong peristiwa ke konsumen.
- Anda dapat lebih mudah melakukan audit pada aplikasi dan menentukan kebijakan.
- Anda tidak membayar polling kontinu untuk memeriksa peristiwa. Ini artinya lebih sedikit konsumsi bandwith jaringan, lebih sedikit pemanfaatan CPU, lebih sedikit kapasitas armada siaga, dan lebih sedikit persinggungan SSL/TLS.
- Dapat membantu dalam mencapai sistem yang fleksibel yang dapat beradaptasi dengan perubahan dan membuat keputusan secara real time.
Kesimpulan
Pada artikel diatas sudah dijelaskan Apa itu Event-Driven Architecture, cara kerja, contoh arsitekturnya, dan juga manfaatnya.
Evolusi Event-Driven Architecture untuk memasukkan manajemen API, IoT, dan mobilitas juga akan mendorong SOA generasi berikutnya.
Event-Driven Architecture menawarkan ketangkasan dan kemampuan ekspansi yang tinggi untuk diintegrasikan dengan aplikasi masa depan sambil memberikan analisis dan pemantauan waktu nyata saat events terjadi, memastikan bahwa solusi saat ini juga akan memenuhi persyaratan jangka panjang.