İçeriğe geç

Olay Kaynaklı Mimari ve As-Of Sorgular

Ordo’da finansal durum güncellenmez; olay eklenir. Bir sözleşmenin bugünkü bakiyesi, kuruluşundan bu yana biriken olayların (tahsilat, ücret, tahsis, teslimat, yeniden yapılandırma…) deterministik olarak katlanmasıyla türetilir.

  • Denetlenebilirlik: “Bu rakam nereden geldi?” sorusunun cevabı, rakamı üreten olay zinciridir. Zincir değiştirilemez (append-only) olduğundan cevap her zaman kesindir.
  • Geri oynatma: Bir hata düzeltmesi, geçmişi silmek yerine düzeltici olay ekler. Neyin ne zaman düzeltildiği de kalıcı kayıttır.
  • Tek hesaplama kaynağı: Bakiye hiçbir yerde “saklanan bir sayı” değildir; her kanal aynı olaylardan aynı sonucu türetir.

Okuma uçlarının çoğu asOf parametresini destekler; sistemin o günkü bilgisiyle durumu yeniden üretir:

GET /api/v1/contracts/ctr_01J8ZK4T2M/statement?asOf=2026-03-31

asOf=2026-03-31 yanıtı, 31 Mart kapanışındaki olay kümesiyle hesaplanır — bugünkü kural setiyle değil, o gün geçerli ve sabitlenmiş kural sürümleriyle. Denetim ve BDDK raporlarının geçmiş dönem doğrulaması bu mekanizmayla yapılır.

{
"eventId": "evt_01J9AB3XKQ",
"type": "PAYMENT_SETTLED",
"occurredAt": "2026-08-20T09:14:33Z",
"contractId": "ctr_01J8ZK4T2M",
"payload": {
"amountMinor": 250000,
"currency": "TRY",
"installmentNo": 14
},
"actor": { "userId": "ops-user-1", "channel": "OPS_CONSOLE" },
"traceId": "8f4a2c1e-9b3d-4e7f-a1c2-5d6e7f8a9b0c"
}

Her olay; aktörü, kanalı ve traceId’yi taşır. İdari eylemler (onay, yetki değişikliği) de aynı defterde tutulur — finansal iz ile operasyonel iz ayrışmaz.

Kimlik sağlayıcı ve çekirdek API, Cloudflare Containers üzerinde çalışır; kalıcılık yönetilen Postgres üzerindedir:

  • kimlik sağlayıcının realm verisi,
  • olay defteri (es.events tablosu),
  • denetim izi.

Olay kaynaklı defter modeli bu altyapıda değişmez: defter append-only’dir ve durum, olayların katlanmasıyla türetilmeye devam eder.