Laravel

Implementasi Arsitektur Event Sourcing Menggunakan Framework Verbs pada Ekosistem Laravel

Kholil · 01 Aug 2026 · 4 min read · 1 views
Implementasi Arsitektur Event Sourcing Menggunakan Framework Verbs pada Ekosistem Laravel

Pelajari cara implementasi Event Sourcing di Laravel dengan mudah menggunakan framework Verbs. Solusi tepat untuk aplikasi dengan audit trail yang akurat.

Pernah nggak sih kamu ngerasa bosen sama cara database tradisional bekerja? Kamu tahu kan, biasanya kita cuma nyimpen 'current state' alias kondisi terakhir dari data. Misalnya, saldo bank kamu cuma kesimpen angkanya aja, katakanlah 1 juta. Terus kalau bos kamu nanya, "Gimana ceritanya saldo kamu bisa jadi segitu?", kamu bakal bingung karena data transaksinya sudah hilang atau cuma ada di log yang susah di-query. Nah, di sinilah Event Sourcing datang sebagai pahlawan.

Event Sourcing itu unik. Alih-alih nyimpen data terakhir, kita justru nyimpen setiap perubahan yang terjadi sebagai sebuah 'Event'. Ibarat buku catatan transaksi, semuanya dicatat detail. Di ekosistem Laravel, sekarang ada framework yang super keren buat nerapin ini, namanya Verbs. Penasaran gimana cara pakainya? Yuk, kita bedah bareng-bareng dengan santai!

Apa Itu Event Sourcing dan Kenapa Harus Ribet?

Secara sederhana, Event Sourcing adalah pola arsitektur di mana setiap perubahan state pada aplikasi disimpan sebagai urutan event yang tidak bisa diubah (immutable). Kalau di Laravel biasa kita pakai UPDATE users SET balance = 500000, di Event Sourcing kita malah nyimpen kejadian seperti MoneyDeposited atau MoneyWithdrawn.

Keuntungannya apa? Banyak! Kita bisa punya audit log otomatis, bisa time-travel debugging (lihat kondisi data di masa lalu), dan pastinya lebih aman buat sistem yang butuh akurasi tinggi. Verbs hadir buat bikin implementasi yang kelihatannya rumit ini jadi semudah bikin Controller di Laravel.

Mengenal Verbs: Senjata Baru di Laravel

Verbs adalah paket yang didesain khusus agar kita bisa menerapkan arsitektur Event Sourcing dengan gaya Laravel banget. Dia nggak maksa kita buat nulis kode aneh-aneh. Kalau kamu biasa pakai Eloquent, transisi ke Verbs bakal kerasa cukup natural karena dia memanfaatkan fitur-fitur PHP modern seperti Typed Properties dan Attributes.

Langkah Pertama: Instalasi dan Setup

Pertama-tama, pastikan kamu udah punya project Laravel yang siap tempur. Kamu bisa install Verbs lewat Composer:

composer require hpwebdesign/verbs

Setelah itu, jalankan migrasi yang disediakan Verbs buat nyiapin tabel event_store di database kamu. Tabel inilah yang bakal jadi "buku kas" utama aplikasi kita.

Mulai Ngoding: Event dan State

Di Verbs, ada dua konsep utama: Event dan State. Event adalah sesuatu yang sudah terjadi, dan State adalah kumpulan hasil dari event-event tersebut. Mari kita bikin contoh sistem dompet digital sederhana.

1. Mendefinisikan Event

Kita buat Event untuk penambahan saldo:

use Glhd\Verbs\Event; class MoneyDeposited extends Event { public function __construct( public int $amount, public int $walletId ) {} }

2. Mendefinisikan State

State akan nampung data terakhir. Verbs bakal otomatis ngitung ulang state ini berdasarkan event yang pernah terjadi.

use Glhd\Verbs\State; class WalletState extends State { public int $balance = 0; public function applyMoneyDeposited(MoneyDeposited $event) { $this->balance += $event->amount; } }

Kenapa Harus Pakai Verbs di Project Kamu?

Kalau kamu lagi bangun sistem yang kompleks kayak sistem akuntansi, e-commerce dengan logika promo yang rumit, atau platform tracking logistik, Event Sourcing itu wajib dipertimbangkan. Verbs ngasih abstraksi yang rapi banget. Kita nggak perlu lagi pusing mikirin gimana caranya sinkronisasi data antar tabel, karena semuanya didrive oleh 'Event'.

  • Traceability: Kamu tahu persis siapa melakukan apa dan kapan.
  • Flexibility: Bisa nge-replay semua event untuk bikin laporan baru tanpa harus ngubah data lama.
  • Integrasi Laravel: Sangat mudah dikombinasikan dengan Queue, Job, dan fitur Laravel lainnya.
Event Sourcing bukan sekadar tren, ini adalah cara untuk membuat sistem yang lebih 'jujur' terhadap data yang masuk.

Tantangan yang Perlu Diperhatikan

Tentu saja, nggak ada teknologi yang sempurna. Event Sourcing punya kurva belajar yang agak lumayan. Pertama, konsep 'Immutable' itu kadang bikin developer yang terbiasa CRUD merasa kagok. Kedua, kamu harus mikirin strategi snapshotting kalau jumlah event sudah jutaan, biar aplikasi nggak lemot pas lagi ngitung ulang state dari nol. Tapi tenang, Verbs udah nyediain tools buat bantuin ini semua.

Kesimpulan

Mengimplementasikan Event Sourcing dengan Verbs di Laravel adalah langkah besar buat bikin aplikasi yang lebih solid, skalabel, dan bisa diandalkan. Meskipun awalnya terasa menantang, benefit jangka panjang yang didapat—terutama dari sisi audit dan data integrity—sangatlah besar. Jadi, nggak ada salahnya dicoba di project kamu berikutnya. Mulailah dari modul kecil, pelajari alurnya, dan rasakan gimana serunya ngatur data lewat Event!