Merancang Analitik Real-Time yang Tangguh
Anda membutuhkan dashboard dengan data terbaru. Anda membutuhkannya agar tetap akurat seiring pertumbuhan sistem Anda. Event sourcing adalah solusinya.
Alurnya:
- Producer: Layanan mengirimkan domain event.
- Event Bus: Kafka atau Kinesis menyimpan event dalam sebuah log.
- Processor: Mereka membaca log dan memperbarui read model.
- Read Model: Postgres atau Redis menyimpan metrik akhir.
- Query API: Dashboard Anda mengambil data dari sini.
Aturan utama untuk desain Anda:
- Buat event bersifat immutable. Jangan pernah memperbarui sebuah event.
- Gunakan idempotency key. Ini mencegah data duplikat.
- Lakukan versioning pada schema Anda. Ini mencegah terjadinya error.
- Gunakan deterministic projection. Ini menjaga konsistensi data.
Cara membangunnya:
- Identifikasi core event Anda.
- Pilih alat penyimpanan Anda.
- Bangun proyeksi awal untuk metrik.
- Implementasikan deduplikasi.
- Buat schema registry.
- Pantau event lag Anda.
Pengaturan ini memungkinkan Anda untuk melakukan scaling dan audit pada data Anda. Anda menyimpan riwayat lengkap dari setiap perubahan.