Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
4 yazı bulundu #marten
Event Sourcing'in Zor Konuları: GDPR, Unique Constraint ve Dynamic Consistency Boundary
Yazılım Mimarisi SERİ 09

Event Sourcing'in Zor Konuları: GDPR, Unique Constraint ve Dynamic Consistency Boundary

Kişisel veriyi event'in dışında tut, kalması gerekiyorsa crypto-shredding ile şifrele; stream'ler arası benzersizliği doğal anahtarlı stream id ya da unique index'li Inline projection ile, iki aggregate'e yayılan kuralları Dynamic Consistency Boundary ile koru. Marten 9 ile AES-GCM crypto-shredding, iki eşzamanlı kayıt yarışı, DcbConcurrencyException ile kampanya kotası ve replay'de dış servis çağırmamak.

7 Kas 2026 14 dk 3
Event Versioning ve Snapshot: Event Schema'sını Kırmadan Değiştirmek
Yazılım Mimarisi SERİ 08

Event Versioning ve Snapshot: Event Schema'sını Kırmadan Değiştirmek

Yazılmış event'ler değiştirilmez; yeni kod eski şekilleri tolerant deserialization, sabit JSON adları ve upcaster ile okur, snapshot ise ölçümle ve rebuild ile birlikte açılır. Sessizce sıfırlanan bir property rename'i, RespectRequiredConstructorParameters, Marten upcaster'ı, namespace taşırken Türkçe culture alias'ının kırılması, in-place migration'ın bedeli, snapshot serialization tuzağı ve closing the books.

7 Kas 2026 12 dk 5
Projection'lar: Inline, Async ve Live Projection ile Read Model Üretmek
Yazılım Mimarisi SERİ 07

Projection'lar: Inline, Async ve Live Projection ile Read Model Üretmek

Projection, event'leri belli bir soruya göre şekillenmiş bir read model'e çeviren fonksiyondur; Inline event'lerle aynı transaction'da, Async daemon ile arka planda çalışır, Live hiç saklanmaz. Bookstore stok defterinden stok rozeti, aylık stok hareketi ve kargo bekleyen rezervasyonlar; checkpoint, projection'ı değiştirip rebuild etmek, dead letter ve başarısız rebuild'in read model'i boşaltması.

7 Kas 2026 13 dk 5
Event Store ile Çalışmak: Marten ve PostgreSQL'de Append, Optimistic Concurrency ve Stream'ler
Yazılım Mimarisi SERİ 06

Event Store ile Çalışmak: Marten ve PostgreSQL'de Append, Optimistic Concurrency ve Stream'ler

Event store'un temel sözleşmesi, bir stream'e yalnızca beklenen version'dayken event eklemektir; Marten bunu PostgreSQL'de (stream_id, version) unique index'i ve FetchForWriting ile sağlar. Marten 9 kurulumu, StartStream/Append, decider'ı FetchForWriting'e bağlamak, iki yazarın yarışı, stream id stratejileri, KurrentDB ve kendi tablonu yazmanın bedeli ve Türkçe culture'da bozulan event adları.

7 Kas 2026 16 dk 4
Blog Haritası