Digital Transformation

Event Sourcing

Vito Atmo
Vito Atmo·2 Mei 2026·0 kali dibaca·2 min baca

TL;DR: Event Sourcing menyimpan setiap perubahan data sebagai event yang tidak bisa diubah, lalu state saat ini dihitung ulang dari urutan event tersebut. Pola ini dipakai di sistem yang butuh audit trail penuh, seperti pembayaran, asuransi, atau tracking inventory. Trade-offnya adalah kompleksitas baca dan kebutuhan strategi snapshot.

Apa itu Event Sourcing?

Pada aplikasi tradisional, ketika pelanggan mengubah alamat, kolom alamat di tabel pelanggan ditimpa nilai baru. Nilai lama hilang. Event Sourcing membalik logika ini. Setiap aksi disimpan sebagai event seperti AlamatDitambahkan, AlamatDiganti, atau AlamatDihapus, dengan stempel waktu dan metadata. State terkini diturunkan dengan memutar ulang event dari awal.

Pola ini sering disandingkan dengan CQRS untuk memisahkan model tulis (event) dan model baca (projection). Untuk konteks performa, projection biasanya disimpan di tabel terpisah dan di-cache lewat stale-while-revalidate.

Karakteristik Utama

AspekCRUD biasaEvent Sourcing
Sumber kebenaranTabel state akhirLog event imutable
Audit trailHarus dibuat manualOtomatis, lengkap
Replay riwayatSulitNative, mudah
Kompleksitas bacaRendahTinggi (perlu projection)
StorageLebih hematLebih besar, butuh snapshot

Kenapa Penting?

Di proyek fintech atau e-commerce dengan transaksi tinggi, regulator sering meminta jejak audit yang lengkap. Event Sourcing menjadikan audit trail sebagai produk sampingan natural, bukan fitur tambahan. Dari pengalaman saya membantu tim engineering memutuskan arsitektur, pola ini cocok untuk domain dengan banyak transisi state, misal status pesanan atau klaim asuransi. Tidak cocok untuk CRUD sederhana karena overhead-nya besar.

Pendekatan ini juga selaras dengan [observability](/glosarium/observability-coming-soon) modern karena setiap perubahan punya konteks lengkap untuk diinvestigasi saat insiden.

Pertanyaan Umum

Apakah Event Sourcing sama dengan log tabel biasa?

Tidak. Log tabel biasa hanya pencatat tambahan. Pada Event Sourcing, log adalah satu-satunya sumber kebenaran dan state lain diturunkan darinya.

Bagaimana menangani volume data yang terus bertambah?

Pakai snapshot berkala. Setiap N event, simpan state akumulatif sehingga rebuild tidak harus dari event pertama.

Apakah cocok untuk semua aplikasi?

Tidak. Aplikasi CRUD sederhana cukup pakai pendekatan biasa. Event Sourcing memberi nilai pada domain dengan jejak audit penting atau analitik historis.

Bagikan