Bisnis semakin membutuhkan sistem yang dapat bereaksi secara instan terhadap berbagai pemicu, mulai dari interaksi pelanggan hingga pembacaan sensor. Model permintaan-respons tradisional, meskipun berharga, mungkin tidak selalu menawarkan ketangkasan atau skalabilitas yang diperlukan untuk lingkungan dinamis ini. Arsitektur berbasis peristiwa (EDA) dapat menawarkan paradigma yang efektif untuk membangun aplikasi yang responsif, tangguh, dan skalabel. Pola ini adalah pola arsitektur software yang dapat mempromosikan produksi, deteksi, konsumsi, dan reaksi terhadap peristiwa.
Arsitektur berbasis peristiwa adalah model untuk mendesain aplikasi software yang layanannya dikaitkan secara longgar dan berkomunikasi melalui produksi dan konsumsi peristiwa. "Peristiwa" menandakan kejadian penting atau perubahan dalam status sistem. Hal ini dapat berupa apa saja, mulai dari pelanggan yang melakukan pemesanan, sensor yang mendeteksi perubahan suhu, file baru yang diupload ke penyimpanan, atau data database yang diperbarui.
Tidak seperti model berbasis permintaan tradisional yang mengharuskan layanan memanggil layanan lain secara eksplisit dan menunggu respons, EDA memungkinkan layanan beroperasi secara asinkron. Layanan yang menghasilkan peristiwa ("produsen" atau "penerbit") hanya mengumumkan bahwa peristiwa tersebut telah terjadi. Layanan lain ("konsumen" atau "pelanggan") yang tertarik dengan jenis peristiwa tersebut kemudian dapat bereaksi terhadapnya secara independen dan sesuai waktu mereka sendiri.
Komponen utama dalam EDA biasanya mencakup:
Alur kerja dalam arsitektur berbasis peristiwa umumnya mengikuti pola yang konsisten.
Mengadopsi arsitektur berbasis peristiwa dapat memberikan banyak keuntungan, terutama untuk sistem terdistribusi yang kompleks.
Skalabilitas yang ditingkatkan
Layanan dalam EDA dikaitkan secara longgar dan dapat diskalakan secara independen. Jika layanan "pemrosesan pesanan" mengalami beban berat, Anda dapat menskalakan layanan tersebut tanpa memengaruhi, misalnya, layanan "notifikasi pengguna".
Peningkatan ketahanan dan fault tolerance
Arsitektur berbasis peristiwa dapat membantu ketahanan aplikasi dengan mengisolasi kegagalan layanan. Sifatnya yang terpisah memastikan bahwa malfungsi di satu layanan konsumen biasanya tidak menyebar dan menyebabkan kegagalan sistem secara keseluruhan.
Peningkatan ketangkasan dan fleksibilitas
Developer dapat menambahkan, memodifikasi, atau menghapus layanan dengan dampak minimal pada bagian sistem lainnya. Layanan baru dapat berlangganan ke aliran peristiwa yang ada untuk menambahkan fungsionalitas baru tanpa memerlukan perubahan pada produsen peristiwa asli.
Responsivitas real-time
Arsitektur berbasis peristiwa membantu sistem merespons peristiwa dengan cepat. Kemampuan ini sangat berharga untuk aplikasi yang memerlukan tindakan cepat, termasuk deteksi penipuan, analisis real-time, dan pemantauan operasional.
Integrasi yang disederhanakan
EDA dapat berfungsi sebagai tulang punggung yang fleksibel untuk mengintegrasikan sistem yang berbeda, termasuk aplikasi lama, microservice modern, dan layanan pihak ketiga. Setiap sistem dapat memublikasikan dan menggunakan peristiwa tanpa memerlukan integrasi point-to-point langsung dengan setiap sistem lainnya.
Ekstensibilitas
Menambahkan fitur baru atau bereaksi terhadap peristiwa yang ada dengan cara baru sering kali hanya melibatkan deployment layanan konsumen baru yang berlangganan ke aliran peristiwa yang relevan.
EDA adalah pola umum untuk mengaktifkan komunikasi dan aliran data antar-microservice. Alih-alih panggilan API sinkron langsung yang dapat menciptakan keterikatan yang erat, microservice dapat memublikasikan peristiwa saat statusnya berubah, dan microservice lain dapat berlangganan peristiwa ini untuk bereaksi dengan tepat.
Aplikasi yang menangani aliran data berkecepatan tinggi, seperti data sensor IoT, log aplikasi, feed media sosial, atau data pasar keuangan, dapat menggunakan EDA untuk memproses, menganalisis, dan bereaksi terhadap informasi ini secara real time. Hal ini dapat membantu mendukung dasbor, sistem pemberitahuan, atau proses pengambilan keputusan otomatis.
Mulai dari mengelola tingkat inventaris sebagai respons terhadap penjualan, memproses pesanan melalui berbagai tahap (pembayaran, pengiriman, pemenuhan), hingga mengirim notifikasi pelanggan, EDA dapat membantu mengelola alur kerja asinkron yang kompleks dalam retail online. Jika layanan pemrosesan pembayaran lambat, peristiwa pesanan masih dapat ditangkap dan diproses oleh layanan lain seperti reservasi inventaris.
Banyak proses bisnis yang pada dasarnya berbasis peristiwa. Misalnya, pengajuan klaim asuransi (peristiwa) dapat memicu serangkaian aktivitas hilir: pemeriksaan penipuan, penilaian, komunikasi pelanggan, dan terakhir, pemrosesan pembayaran. EDA dapat membantu memodelkan dan mengotomatiskan alur kerja ini secara efektif.
EDA dapat digunakan saat data perlu dijaga konsistensinya di berbagai sistem atau penyimpanan data. Perubahan di satu database (peristiwa) dapat dipublikasikan, sehingga database atau cache lain dapat berlangganan peristiwa perubahan ini dan memperbarui diri mereka sendiri.
Fungsi serverless (seperti Cloud Run Functions) sering kali dirancang untuk didorong oleh peristiwa. Fungsi ini dijalankan sebagai respons terhadap berbagai pemicu peristiwa, seperti objek yang diupload ke penyimpanan cloud, pesan yang tiba di antrean, atau permintaan HTTP. EDA sangat cocok untuk membangun aplikasi menggunakan komponen serverless.
Deteksi penipuan real-time, pemantauan pasar saham, dan pemrosesan perdagangan adalah aplikasi keuangan penting yang memanfaatkan kemampuan latensi rendah dan throughput tinggi dari EDA.
Google Cloud menyediakan rangkaian layanan yang tangguh yang dapat membantu pelanggan membangun dan men-deploy aplikasi berbasis peristiwa yang canggih. Platform ini memanfaatkan prinsip berbasis peristiwa untuk membantu memberikan layanan yang skalabel dan tangguh. Untuk pelanggan yang membangun solusi berbasis peristiwa, Google Cloud menawarkan beberapa layanan terkelola utama:
Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.