Teknoloji yığını
Tasarım, Hyperswitch’in (Apache-2.0) davranışsal mirası üzerine Türkiye pazarına
özel bir yeniden kuruluştur: intent/attempt modeli ve yönlendirme DSL’i oradan
gelir; taksit, valör, mutabakat ve KVKK katmanı yerlidir.
Dört ilke
- Modüler monolit, mikroservis değil. ~17 modül tek süreçte yaşar; her
modülün kendi DbContext’i, kendi migration geçmişi vardır ve modüller
birbirine yalnız
Contractsarayüzleriyle bağlanır (mimari testlerle zorlanır). Panel bile API’ye HTTP’yle değil, aynı süreçteki komut yoluyla gider. - Offline-first istemci, sunucu zaman otoritesi. Saha cihazı beyan eder, sunucu karar verir; yasal zaman damgası yalnız sunucu saatinden çıkar.
- Hiçbir operasyonel kayıt silinmez. Olay defterleri, denemeler, alacaklar, denetim izi — silme yetkisi veritabanında geri alınmıştır. İptal/kaldırma damgalanır.
- İki katmanlı kiracı izolasyonu. Uygulama katmanında otomatik kiracı süzgeci ve Postgres satır düzeyi güvenliği (RLS). Uygulama, RLS’i atlayamayan kısıtlı bir rolle bağlanır; açılışta canlı bir bekçi bunu doğrular — süper kullanıcıyla bağlanmış üretim süreci hiç açılmaz.
Bir isteğin yolu
Sıra bilinçlidir: denetim katmanı kimlik katmanını sarar ki rol reddi (403) bile “kim neyi denedi” olarak kaydedilsin; idempotency kimlikten sonra gelir ki anahtarlar kiracıya bağlansın ve yetkisiz istek başkasının anahtarını yakamasın.Olaylar: defter + outbox + canlı sinyal
Bir ödeme sonuçlandığında üç şey aynı transaction’da yazılır: durum değişikliği, silinemez olay defteri kaydı ve webhook’un outbox mesajı. Teslimat sonra gelir — commit olmuşsa olay eninde sonunda teslim edilir (en az bir kez), commit olmamışsa hiçbir şey sızmamıştır. Panelin canlı akışı ise ayrı ve en-iyi-çaba bir sinyaldir:pg_notify yalnız “yenile” der, veri taşımaz; panel
veriyi her zaman kiracı-izoleli sorgu yolundan okur.
Para ve zaman sözleşmeleri
- Para her zaman kuruş cinsinden
long’dur; yüzdesel hesaplar ondalıkta yapılıp bankacı yuvarlamasıyla kuruşa döner. Tek yönlü yuvarlama, milyonlarca işlemde taraflı sapma biriktirir. - Zaman damgaları UTC saklanır; gelen
+03:00yazımı sınırda UTC’ye indirgenir. “Gün” kavramı (gün sonu raporları, süre bitimleri, ekstre günleri) Türkiye saatiyle hesaplanır — Türkiye 2016’dan beri kalıcı UTC+3’tedir. - İş günü hesapları (valör, itiraz süresi) hafta sonu ve platformca yüklenen banka tatillerini atlar.
Türkçe, birinci sınıf sorun olarak
Kod tabanının en sık tekrarlanan dersi büyükİ harfidir: "İade" satırını
ekstrede tanımak, kara listede ısparta@… ile isparta@…’yı doğru ayırmak,
CSV’leri Excel’in Türkçe yereli için BOM’lu ve noktalı virgül ayraçlı üretmek,
tutar girişinde 199,90’ı kabul etmek — hepsi merkezî yardımcılarla çözülür ve
testle korunur. Vekilin charset başlığını ezmesi bile
sorun giderme tablosundadır.