1. Giriş
Bu örneği uygulamadan önce aşağıdaki yazıyı okumanızı öneririm.
Yukarıda belirttiğim yazıda aşağıdaki gibi cümle kurmuştum.
Event Sourcing için .NET dünyasında Event Store adında bir teknoloji var. Bu teknoloji “Aggregate” ve “Projection” için çözüm sunmaktadır. Yani event‘leri kaydedebileceğimiz store’u sağlamakla birlikte “Query” veritabanlarına kayıt atabilmemiz için gerekli olan “Messaging” ve “Projection” hizmetini de sağlamaktadır.
Bu yazıda Event Store’un store kısmı ile ilgileneceğiz. Yani event‘leri kaydedebileceğimiz veritabanı özelliği ile ilgileneceğiz. Sonraki yazımda ise messaging kısmı ile ilgileneceğiz.
Örnek uygulama olarak klasik Kanban Board örneğini seçtim.
RESTful API endpoint’lerimiz aşağıdaki gibi olacak.
[POST] api/tasks/{id}/create
[PATCH] api/tasks/{id}/assign
[PATCH] api/tasks/{id}/move
[PATCH] api/tasks/{id}/complete