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
3 yazı bulundu #concurrency
Status Field'ı Her Yerden Güncelleniyorsa: Transition Table, State Machine ve Status History
Yazılım Tasarımı SERİ 09

Status Field'ı Her Yerden Güncelleniyorsa: Transition Table, State Machine ve Status History

Status kolonunu her endpoint'in yazabildiği bir field olmaktan çıkar: istemci durum değil aksiyon göndersin, izinli geçişleri tek bir yerde (transition table, domain method veya Stateless) tut, her geçişi gerekçesiyle aynı transaction'da status history'ye yaz ve rowversion ile çift onayı engelle.

7 Kas 2026 12 dk 7
Numaralandırma: Fatura ve Sipariş Numaraları, Gapless Sequence ve Yıllık Sıfırlama
Yazılım Tasarımı SERİ 16

Numaralandırma: Fatura ve Sipariş Numaraları, Gapless Sequence ve Yıllık Sıfırlama

Ardışık olması gereken fatura numarası identity, MAX + 1 ya da SEQUENCE ile değil, onay transaction'ının içinde (Series, Year) key'li bir counter tablosundan lock alan bir UPDATE ile alınmalıdır; boşluk kabul edilen sipariş numaraları için SEQUENCE yeterlidir. Yazı GİB'in 16 karakterlik belge numarası biçimini, 50 concurrent onayla boşluksuzluğu, lock süresinin throughput'a etkisini ve fatura tarihine göre yıllık sıfırlamayı gerçek çıktılarla gösteriyor.

7 Kas 2026 13 dk 7
Optimistic Concurrency Uçtan Uca: rowversion'dan ETag'e, If-Match ve 412 ile Çakışma Ekranı
Yazılım Tasarımı SERİ 20

Optimistic Concurrency Uçtan Uca: rowversion'dan ETag'e, If-Match ve 412 ile Çakışma Ekranı

Optimistic concurrency'yi web'de uçtan uca kurmak için rowversion'ı ETag olarak dışarı açmak, güncellemede If-Match'i zorunlu tutmak (yoksa 428), uyuşmazlıkta 412 ile güncel değerleri dönmek ve istemcide field bazlı three-way merge yapmak gerekir. Bu yazı EF Core Concurrency yazısının devamı olarak HTTP ve Angular tarafını gerçek çıktılarla gösteriyor.

7 Kas 2026 15 dk 7
Blog Haritası