Membuat arsitektur berbasis peristiwa dengan Eventarc

Anda dapat menggunakan Eventarc dan Firestore untuk membangun arsitektur berbasis peristiwa. Pemicu Firestore untuk Eventarc menghasilkan peristiwa dari perubahan pada dokumen tertentu di database Anda. Pemicu dapat mengarahkan peristiwa ke tujuan yang didukung:

Eventarc menawarkan solusi terstandardisasi untuk mengelola alur perubahan status, yang disebut peristiwa, antara microservice yang dipisahkan. Saat dipicu, Eventarc akan mengarahkan peristiwa ini ke berbagai tujuan sekaligus mengelola pengiriman, keamanan, otorisasi, kemampuan observasi, dan penanganan error untuk Anda.

Batasan

Perhatikan batasan berikut untuk pemicu Firestore untuk Eventarc:

  • Pengurutan tidak dijamin. Perubahan cepat dapat memicu peristiwa dalam urutan yang tidak terduga.
  • Peristiwa dikirim setidaknya satu kali.

    Pastikan pengendali peristiwa Anda bersifat idempoten dan hindari memberikan hasil atau efek samping yang tidak terduga jika peristiwa ditayangkan lebih dari sekali. Lihat Membangun fungsi idempoten untuk mempelajari lebih lanjut.

  • Pemicu dikaitkan dengan satu database. Anda tidak dapat membuat pemicu yang cocok dengan beberapa database.

  • Menghapus database tidak secara otomatis menghapus pemicu untuk database tersebut. Pemicu berhenti mengirim peristiwa, tetapi akan tetap ada sampai Anda menghapus pemicu.

Lokasi Eventarc dan Firestore

Eventarc tidak mendukung multi-region untuk pemicu peristiwa Firestore, tetapi Anda masih dapat membuat pemicu untuk database Firestore di lokasi multi-region. Eventarc memetakan lokasi multi-region Firestore ke region Eventarc berikut:

Firestore multi-region Wilayah Eventarc
nam5 us-central1
eur3 europe-west4

Perbedaan antara Cloud Functions generasi ke-2 dan generasi ke-1

Cloud Functions (generasi ke-2) menggunakan peristiwa Eventarc untuk semua runtime. Sebelumnya, Cloud Functions (generasi ke-1) menggunakan peristiwa Eventarc hanya untuk beberapa runtime. Peristiwa Eventarc memperkenalkan perbedaan berikut dengan Cloud Functions (generasi ke-1).

  • Pemicu Firestore untuk Eventarc mendukung tujuan tambahan selain Cloud Functions. Anda dapat merutekan CloudEvents ke sejumlah tujuan termasuk, tetapi tidak terbatas pada Cloud Run, GKE, dan Alur kerja.

  • Pemicu Firestore untuk Eventarc mengambil definisi pemicu di awal operasi tulis database dan menggunakan definisi tersebut untuk menentukan apakah Firestore harus memunculkan peristiwa. Operasi tulis tidak memperhitungkan perubahan apa pun untuk memicu definisi yang mungkin terjadi saat berjalan.

    Cloud Functions (generasi ke-1) mengambil definisi pemicu selama evaluasi penulisan database, dan perubahan pada pemicu selama evaluasi dapat memengaruhi apakah Firestore memunculkan suatu peristiwa atau tidak.

Interoperabilitas mode Datastore dan peristiwa mode Native

Eventarc mendukung pemicu peristiwa untuk mode Datastore dan mode Native. Pemicu peristiwa ini dapat dioperasikan dengan kedua jenis database. Database Firestore dalam mode Native dapat menerima peristiwa Datastore, dan database Firestore dalam mode Datastore dapat menerima peristiwa mode Native.

Interoperabilitas peristiwa memungkinkan Anda membagikan kode Eventarc di berbagai jenis database Firestore.

Konversi peristiwa

Jika Anda menerapkan pemicu peristiwa mode Native ke database mode Datastore, Eventarc akan membuat konversi berikut:

  • Namespace entity disimpan dalam atribut PartitionId peristiwa.
  • Entity tersemat dikonversi ke jenis map mode Native.

Langkah selanjutnya