Temel bir CRUD uygulaması için "doğru yol bu" diye olay kaynağı (event sourcing) uyguladık. Özellikler yerine altyapıya 6 ay harcadık.

Uygulama gereksinimleri:

  • Kullanıcı yönetimi CRUD
  • Günlük 500 kullanıcı
  • Denetim gereksinimi yok
  • Zaman yolculuğu gerekmiyor
  • Standart iş mantığı

Ne inşa ettik:

  • Olay deposu (Kafka + PostgreSQL)
  • Olay yeniden oynatma sistemi
  • Projeksiyonlar (okuma modelleri)
  • Anlık görüntüleme (snapshotting)
  • Sürümlenmiş olaylar
  • Saga orkestrasyonu

Harcanan zaman:

  • Altyapı: 4 ay
  • Olay şeması tasarımı: 1 ay
  • Nihai tutarlılık (eventual consistency) hatalarını ayıklama: 1 ay
  • Gerçek iş özellikleri: 2 hafta

İhtiyacımız olan:

class User:
                                    def update(self, data):
                                    self.name = data.name
                                    self.email = data.email
                                    db.save(self)

Olay kaynağının mantıklı olduğu durumlar:

  • Yasal denetim izi gereksinimleri
  • Finansal işlemler
  • Zaman yolculuğu ile hata ayıklama
  • Birçok durum geçişi olan karmaşık alan

Ders: Olay kaynağı güçlüdür. Aynı zamanda pahalıdır. Karmaşıklığı gereksinimlerle eşleştirin.


← Alınan Derslere Dön