Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
System Design Case Study: News Feed ve Timeline
News feed'de varsayılan fan-out on write'tır, ama takipçi dağılımı power-law olduğu için tek bir ünlü paylaşımı milyon yazmaya dönüşür; çözüm, yüksek bir eşiğin üstündeki hesapları okuma anında birleştiren hibrit model, yalnız post ID tutan bir feed cache ve cursor pagination. Hesaplanmış capacity tablosu, push, pull ve hibrit simülasyonu, Redis sorted set'te offset ile cursor'ın gerçek çıktıları.
Pagination Stratejileri Derinlemesine: Offset, Keyset ve Opaque Cursor Token
Büyük ve değişen tablolarda keyset pagination, offset'in derinlikle artan maliyetini ve sayfa kaymasını ortadan kaldırır: 2 milyon satırlık testte 5000. sayfa offset ile 375, keyset ile 6 logical read okudu. Bu yazı SQL Server'da tie-breaker'lı keyset koşulunu, HMAC ile imzalı opaque cursor'ı, önceki sayfayı ve nullable sıralama kolonu tuzağını gerçek ölçümlerle gösteriyor.
ASP.NET Core Web API'de Pagination, Filtering ve Sorting: Büyük Listeleri Güvenle Döndürmek
Query parametrelerini tek class'ta topluyor, IQueryable ile filtre, toplam sayı, Skip/Take ve beyaz listeli dinamik sıralamayı veritabanında çalıştırıyoruz. Metadata body mi header mı, offset mi keyset mi, SQLite decimal tuzağı.