Apa perbedaan antara Event Driven dan sumber acara?

13

Saya mempelajari desain berbasis domain (DDD) dan menemukan istilah: Event Driven dan Event sourcing. Saya tahu ini tentang penerbitan acara dari produsen ke konsumen, dan menyimpan log, jadi pertanyaan saya adalah:

Apa perbedaan antara Event Driven dan sumber acara?

JJ Beam
sumber

Jawaban:

15

Istilah Event didorong arsitektur digunakan untuk segala jenis sistem perangkat lunak yang didasarkan pada komponen yang berkomunikasi terutama atau secara eksklusif melalui acara. Misalnya, hampir semua kerangka kerja GUI utama pada platform populer mana pun menggunakan mekanisme berbasis-event. Istilah "acara" biasanya berarti "pemberitahuan" dalam konteks ini.

Sumber acara adalah istilah yang jauh lebih khusus, mengacu pada sistem di mana seluruh kondisi aplikasi disimpan sebagai urutan peristiwa. Kelas contoh populer yang terkenal adalah sistem basis data transaksional, yang menyimpan setiap perubahan keadaan dalam log transaksi. Di sini, istilah "acara" lebih mengacu pada "perubahan negara", bukan hanya "pemberitahuan".

Jadi setiap sistem yang menggunakan "event sourcing" sebagai mekanik intinya dapat dilihat juga sebagai sistem yang digerakkan rata, tetapi sebaliknya tidak berlaku secara umum.

Doc Brown
sumber
Terbalik jawaban Anda. Saya sendiri sedang mencari ini, dan menemukan jawaban Anda terlebih dahulu. Melihat frasa "seluruh status aplikasi disimpan sebagai peristiwa berurutan", sepertinya Anda mengatakan ini: "Status aplikasi tidak bertahan langsung dalam bentuk saat ini. Sebaliknya, setiap operasi membuat, memperbarui, atau menghapus dilakukan pada suatu objek atau model dianggap sebagai 'peristiwa', dan itu adalah 'peristiwa' yang secara langsung bertahan. Jadi untuk mendapatkan keadaan saat ini dari suatu objek, Anda harus memutar ulang peristiwa itu untuk merekonstruksi salinannya. " Apakah ini benar?
Panzercrisis
1
@ Panzercrisis: Seharusnya saya menulis "Sumber Acara menyimpan semua perubahan ke status aplikasi sebagai urutan peristiwa." (seperti Fowler). Semua objek biasanya memiliki keadaan "saat ini", keadaan ini juga dapat bertahan (mungkin ditangguhkan), serta urutan peristiwa itu sendiri. Saya sarankan untuk membaca artikel Fowler untuk penjelasan lengkap.
Doc Brown