Eventarc #

Dalam ekosistem cloud, event-driven architecture (EDA) semakin populer karena memungkinkan sistem bereaksi terhadap peristiwa secara real-time. Google Cloud Platform (GCP) menyediakan layanan serverless untuk membangun EDA, salah satunya adalah Eventarc.

Eventarc adalah layanan yang memungkinkan pengembang untuk menangkap peristiwa dari berbagai sumber, lalu menyalurkannya ke target yang sesuai. Layanan ini mengurangi kebutuhan untuk mengelola server, menyederhanakan integrasi event, dan memungkinkan pengembangan aplikasi yang scalable, reliable, dan maintainable.

Apa itu GCP Eventarc? #

Eventarc adalah layanan serverless event routing yang memfasilitasi penyaluran peristiwa (event) dari sumber ke target di GCP. Eventarc memungkinkan sistem merespons berbagai peristiwa, baik yang berasal dari layanan GCP, aplikasi internal, maupun layanan eksternal.

Beberapa fungsi utama Eventarc:

  • Menangkap event dari berbagai sumber (misal Cloud Storage, Cloud Audit Logs, Pub/Sub).
  • Memfilter dan menyalurkan event ke target seperti Cloud Run, Cloud Functions, atau Workflows.
  • Menyediakan retry otomatis, dead-letter handling, dan observability untuk event.

Kenapa Eventarc Termasuk Serverless? #

  • No server management: Pengguna tidak perlu mengelola infrastruktur.
  • Auto-scaling: Target serverless otomatis menyesuaikan dengan jumlah event.
  • Pay-per-use: Biaya hanya muncul saat event diproses.
  • Fully managed: GCP menangani routing, delivery, dan reliability.

Jenis-jenis Event di Eventarc #

Eventarc mendukung berbagai jenis event:

Event dari GCP Services #

  • Cloud Audit Logs: Mencatat aktivitas pada resource GCP (misal IAM changes, BigQuery query, Compute Engine instance changes).
  • Cloud Storage: Event seperti object creation, deletion, atau metadata changes.
  • Pub/Sub: Menghubungkan sistem lain melalui Pub/Sub topics.
  • Firebase / Firestore: Perubahan data realtime pada aplikasi mobile/web.

Custom Events #

  • Event dari aplikasi internal yang dikirim via Pub/Sub.
  • Event eksternal dari SaaS yang bisa diintegrasikan dengan Pub/Sub.
  • Event harus memenuhi CloudEvents specification agar kompatibel.

SaaS Partners #

  • Eventarc mendukung integrasi dengan beberapa SaaS eksternal (misal Workday, Salesforce) melalui partner connector.
  • Memungkinkan workflow lintas platform tanpa custom middleware.

Konfigurasi Eventarc #

Pengguna bisa menyesuaikan Eventarc melalui beberapa konfigurasi penting:

Trigger #

  • Mendefinisikan event source dan jenis event yang akan ditangkap.

  • Filter bisa berdasarkan:

    • Event type (google.cloud.storage.object.v1.finalized)
    • Resource name
    • Attributes custom
  • Trigger bisa dikonfigurasi via gcloud CLI, console, atau Terraform.

Target #

  • Target bisa berupa Cloud Run, Cloud Functions, atau Workflows.
  • Target harus menerima event dengan format CloudEvent.
  • Bisa ditentukan region untuk latensi rendah dan kepatuhan data.

Delivery Options #

  • Retry policy: Jumlah retry dan backoff interval.
  • Dead-letter topic: Event gagal diproses dikirim ke Pub/Sub topic khusus untuk debugging.
  • Event ordering: Bisa memastikan event diproses dalam urutan tertentu bila diperlukan.

Authentication & Security #

  • Eventarc menggunakan IAM untuk mengontrol akses ke trigger dan target.
  • Event dapat dienkripsi saat transit.
  • Mendukung service accounts khusus untuk event routing.

Advanced Filters #

  • Event filtering berbasis multiple attributes.
  • Mendukung wildcard patterns untuk resource names.
  • Mengurangi noise event yang tidak relevan.

Monitoring Eventarc #

Eventarc menyediakan monitoring dan observability komprehensif:

Cloud Logging #

  • Mencatat setiap event diterima dan delivery ke target.
  • Menyediakan log error, warning, dan info.
  • Bisa difilter untuk debugging dan auditing.

Cloud Monitoring #

  • Metrics default:

    • event_count per trigger
    • event_success_count dan event_failure_count
    • Latency rata-rata delivery event
  • Bisa buat custom dashboards untuk metrik spesifik.

Dead-letter Handling #

  • Event gagal otomatis dikirim ke dead-letter Pub/Sub topic.
  • Memudahkan analisis dan reprocessing event.

Tracing #

  • Integrasi dengan Cloud Trace dan Cloud Debugger.
  • Mempermudah identifikasi bottleneck dalam processing pipeline.

Alerts & Notifications #

  • Bisa mengatur alerting ketika terjadi error rate tinggi atau latensi meningkat.
  • Mendukung integrasi dengan Cloud Monitoring Alerts dan notifikasi ke email atau Slack.

Pros & Cons #

Pros #

  • Serverless & scalable: Tidak ada manajemen server, auto-scale.
  • Integrasi luas: Mendukung GCP Services, custom events, SaaS partners.
  • Fleksibel: Filter dan routing event yang granular.
  • Observability lengkap: Logging, monitoring, tracing, dead-letter.
  • Pay-per-use: Biaya efisien.

Cons #

  • Vendor lock-in: Tergantung ekosistem GCP.
  • Cold start latency: Target serverless (Cloud Run/Functions) dapat mengalami delay saat pertama kali event datang.
  • Complexity: Arsitektur event-driven besar butuh desain yang hati-hati.
  • Event ordering terbatas: Tidak semua event menjamin urutan delivery kecuali menggunakan strategi tambahan.

Tambahan Penting #

  • Eventarc sangat ideal untuk real-time data processing, notifikasi, workflow automation, dan audit logging.
  • Bisa digabung dengan Pub/Sub, Cloud Run, Workflows, BigQuery, dan Firestore untuk membangun sistem event-driven kompleks.
  • Membantu organisasi bergerak ke microservices dan arsitektur loosely-coupled.

Best Practices #

  1. Gunakan Dead-letter Topic

    • Selalu konfigurasi dead-letter untuk event gagal.
  2. Filter Event Seefisien Mungkin

    • Gunakan filtering attribute agar target hanya menerima event relevan.
  3. Monitoring & Alerting Aktif

    • Dashboard, metrics, dan alerts untuk mendeteksi failure atau latency tinggi.
  4. Target Optimization

    • Konfigurasi memory, concurrency, dan timeout Cloud Run/Functions untuk performa optimal.
  5. Security & IAM

    • Gunakan principle of least privilege.
    • Pastikan service account yang digunakan memiliki akses minimal untuk trigger dan target.
  6. Idempotent Processing

    • Pastikan target dapat memproses event berulang tanpa side-effect.
  7. Simulasi & Testing

    • Uji event pipeline sebelum deploy ke production untuk meminimalkan risiko error.
  8. Region Selection

    • Pilih region terdekat antara event source dan target untuk mengurangi latency.
  9. Document Event Schema

    • Pastikan schema event terdokumentasi dengan baik agar tim developer lain mudah integrasi.

Penutup #

GCP Eventarc adalah solusi serverless, scalable, dan fleksibel untuk membangun event-driven architecture. Dengan konfigurasi trigger, filtering, target, retry, dan monitoring yang lengkap, Eventarc memungkinkan pengembang fokus pada logika bisnis. Mengikuti best practice akan memastikan pipeline event yang reliable, secure, dan maintainable.

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact