Event Sourcing

Event sourcing adalah pendekatan dalam pengelolaan data dan arsitektur aplikasi di mana setiap perubahan pada keadaan aplikasi direkam sebagai serangkaian event atau kejadian.

Data Analytics

Mau Belajar

Data Analytics

GRATIS?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

IKUT KURSUS GRATIS

Mau Belajar

Data Analytics

GRATIS?

Apa itu Event Sourcing?

Event sourcing adalah pendekatan dalam pengelolaan data dan arsitektur aplikasi di mana setiap perubahan pada keadaan aplikasi direkam sebagai serangkaian event atau kejadian.

Berbeda dari metode tradisional yang hanya menyimpan keadaan terakhir dari suatu entitas, Event sourcing mencatat setiap perubahan sebagai event yang terpisah. Setiap event ini merepresentasikan sebuah tindakan yang telah terjadi dan mengubah keadaan sistem.

Keuntungan utama dari pendekatan ini adalah kemampuan untuk merekonstruksi keadaan historis suatu sistem dengan memutar ulang event tersebut. Hal ini memberikan informasi lebih mendalam tentang bagaimana suatu keadaan tercapai, memudahkan proses audit, dan meningkatkan kemampuan sistem untuk beradaptasi dengan perubahan.

Selain itu, event sourcing juga sering dikombinasikan dengan CQRS (Command Query Responsibility Segregation) untuk memisahkan proses pembacaan dan penulisan data, sehingga meningkatkan skalabilitas dan efisiensi aplikasi. Pendekatan ini berguna dalam aplikasi yang memerlukan tingkat auditabilitas tinggi dan kemampuan untuk menganalisis atau memprediksi tren berdasarkan data historis.

Manfaat Event Sourcing

Berikut manfaat event sourcing dirangkum dari Event Store dan AxonIQ Dev Portal:

  • Log audit lengkap: event sourcing menyimpan riwayat lengkap interaksi user dengan aplikasi, memungkinkan pembuatan log audit yang komprehensif. Hal ini berguna dalam aplikasi yang memerlukan tinjauan eksternal, karena menyediakan catatan terperinci tentang semua perubahan yang terjadi.
  • Kemampuan adaptasi tinggi: dengan event sourcing, sistem software bisa lebih mudah beradaptasi terhadap perubahan. Kemampuan untuk memutar ulang event flow dengan logika bisnis baru memungkinkan perbaikan dan penyesuaian terhadap keputusan yang telah dibuat sebelumnya.
  • Pengambilan keputusan berbasis data: riwayat interaksi yang disimpan bisa digunakan untuk menerapkan algoritma machine learning, membantu pengambilan keputusan berbasis data yang lebih akurat.
  • Pemecahan masalah dan debugging: event sourcing memudahkan proses investigasi dan debugging, terutama dalam masalah produksi. Dengan memutar ulang event sampai titik tertentu, developer dapat men-debug aplikasi dalam keadaan di mana masalah terjadi.
  • Integrasi dengan sistem eksternal: event sourcing membantu integrasi yang lebih mudah dengan sistem eksternal, dengan cara menggunakan event sebagai API. Cara ini memfasilitasi pertukaran data dan fungsi antara berbagai sistem.
  • Keamanan data: teknik seperti 'cryptographic erasure' dipakai dalam event sourcing untuk mengatasi permintaan penghapusan data oleh user, sesuai dengan regulasi seperti GDPR.
  • Skalabilitas dan konsistensi: event sourcing memungkinkan pemisahan model menjadi agregat, membuat sistem lebih mudah untuk dipahami, diadaptasi, dan scalable.

Contoh Event Sourcing

Contoh event sourcing dapat dilihat dalam skenario pemesanan online.

Dalam sistem penyimpanan tradisional, developer hanya mengetahui user telah memesan pizza dan cola. Namun, dengan event sourcing, ia dapat melihat seluruh rangkaian kejadian yang terjadi selama proses pemesanan.

Berikut langkah-langkah dalam event sourcing untuk pemesanan online:

  • Pemilihan pizza: user memilih pizza, direkam sebagai event 'Selected Pizza'.
  • Pemilihan cola: user kemudian memilih cola, direkam sebagai event 'Selected Cola'.
  • Pemilihan dan pembatalan es krim: user memilih es krim (event 'Selected Ice Cream'), tetapi kemudian membatalkannya (event 'Deselected Ice Cream'). Dalam sistem tradisional, informasi tentang pemilihan dan pembatalan es krim tidak tercatat.
  • Konfirmasi pesanan: akhirnya, user mengonfirmasi pesanan, direkam sebagai event 'Confirmed Order'.

FAQ (Frequently Ask Question)

Apa saja prinsip event sourcing?

Event Store juga mengungkapkan prinsip-prinsip utama event sourcing:

  • Penyimpanan perubahan sebagai event: inti dari event sourcing adalah menyimpan setiap perubahan yang terjadi pada entitas sebagai serangkaian 'event', berbeda dari pendekatan tradisional yang hanya menyimpan keadaan terakhir dari entitas.
  • Write model: write model bertanggung jawab atas logika bisnis. Dalam konteks CQRS (Command Query Responsibility Segregation), write model menjadi tempat di mana perintah diproses.
  • Aggregates untuk konsistensi data: pada event sourcing, aggregate adalah pola yang dipakai untuk menjaga konsistensi data. Aggregate bertanggung jawab untuk memastikan semua data terkait disimpan dalam satu transaksi, membantu menjaga integritas dan konsistensi data.
  • Pendekatan Domain-Driven Design: event sourcing sering dikaitkan dengan Domain-Driven Design (DDD), di mana objek domain dibuat dan dikelola sebagai aggregate.
  • Penyimpanan semua atau tidak sama sekali: salah satu prinsip penting dalam event sourcing adalah konsep penyimpanan semua atau tidak sama sekali. Artinya, semua perubahan data dalam sebuah aggregate harus berhasil disimpan. Jika satu aturan atau operasi gagal, seluruh perubahan kondisi ditolak.
  • Pencatatan event: setiap operasi yang dilakukan pada aggregate harus menghasilkan event baru. Event ini kemudian dicatat dalam event store. Hal ini memungkinkan rekonstruksi keadaan historis dari entitas kapan pun diperlukan.
  • Penggunaan aggregate yang lebih kecil: menggunakan aggregate yang lebih kecil dan lebih fokus dapat membuat sistem lebih efisien secara keseluruhan dan menjaga konteks bisnis yang diperlukan.

Kata kunci lainnya

Mulai karirmu dalam

Data Analytics

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!
ikut kursus gratis
Daftar Isi