คืออะไร Event Sourcing
การจัดเก็บสถานะผ่านประวัติเหตุการณ์
Event Sourcing เป็นรูปแบบสถาปัตยกรรมที่สถานะแอปพลิเคชันถูกกำหนดโดยลำดับของเหตุการณ์แทนที่จะเป็นภาพรวมข้อมูลปัจจุบัน
หลักการทำงาน
- Event — บันทึกที่ไม่เปลี่ยนแปลงของสิ่งที่เกิดขึ้น
- Event Store — ที่เก็บเหตุการณ์ทั้งหมดตามลำดับเวลา
- Projection — สถานะปัจจุบันที่สร้างขึ้นใหม่จากเหตุการณ์
- Replay — ความสามารถในการเล่นซ้ำเหตุการณ์ทั้งหมด
ข้อดี
- ประวัติการเปลี่ยนแปลงที่สมบูรณ์ (audit trail)
- ความสามารถในการย้อนกลับไปยังจุดใดก็ได้ในเวลา
- การดีบักและวิเคราะห์พฤติกรรมระบบ
- รองรับ CQRS (Command Query Responsibility Segregation)
กรณีการใช้งาน
- ธุรกรรมธนาคารและระบบชำระเงิน
- ระบบการจองและสั่งซื้อ
- เซิร์ฟเวอร์เกม (replay การแข่งขัน)
- การตรวจสอบและการปฏิบัติตามกฎในแอปพลิเคชันการเงิน
เทคโนโลยี
Event Store, Apache Kafka, Axon Framework, Marten (.NET)