Upgrade to Pro — share decks privately, control downloads, hide ads and more …

System Design Toolbox

System Design Toolbox

Devnot - Developer Summit 2026
17.10.2026
Elite World Grand İstanbul Küçükyalı Hotel, İstanbul

Avatar for Mert Metin

Mert Metin

October 15, 2026

More Decks by Mert Metin

Other Decks in Technology

Transcript

  1. MERT METİN Senior Software Engineer & Scrum Master @Sompo Teknoloji

    in/mrtmtn Blogcu Mühendis mertmtn.blogspot.com
  2. Fonksiyonel Gereksinimler Sistem, hangi problemi çözüyor? Sigorta teklif süreci Teklif

    oluşturulurken kimlik bilgileri sorgulanmalı. Validasyon ve otorizasyon kontrolü yapılmalı. Prim hesaplanırken, o güne ait güncel tarife değerleri kullanılmalı. URL Kısaltıcı Verilen uzun URL için tekil bir kod oluşturulmalı. Kullanıcılar kısa linkten orijinal URL’e yönlendirilmeli.
  3. Fonksiyonel Olmayan Gereksinimler Fonsiyonel gereksinimleri destekler. Darboğaz analizinde ve kaliteyi

    belirlemekte faydalıdır. Sigorta teklif süreci Kasko teklif i x saniyede oluşturulmalı. Teklif süreleri izlenebilir olmalıdır. Mevcut tarife sorgusu tamamlanmadan yeni hesaplama tetiklenmemelidir, gerekirse sonraki istek bekletilmelidir. URL Kısaltıcı Çok sayıda kısa URL'nin kullanılmasını sağlayın. Verimli bir benzersiz kod oluşturucu uygulayın. Kısa linkten orijinal linke yönlendirilmesi hızlı olmalıdır.
  4. Önemli Metrikler Throughput: Sistemin birim zamanda tamamlayabildiği iş adetidir. Günlük

    kaç adet url kısaltılacak? Günlük sigorta teklif adet hedef i nedir? Latency: Bir işlem ne kadar sürüyor? Oluşturulan kısa linkten orijinal URL’e kaç ms’de yönlendirilmelidir? Bir kasko teklif i alınırken prim hesaplama servisi kaç ms’de işi tamamlamalıdır? İdeal olan: Low Latency - High Throughput
  5. API Tasarımı ve İletişim Ana soru: Fonksiyonel gereksinimleri karşılamak için

    nasıl servisler tasarlanabilir? Asynchronous vs Synchronous Mimari Yaklaşımlar Request-Response: Senkron Event-Driven: Asenkron Request-Response Pattern API Tipleri: REST, Soap, GraphQL, gRPC, WebSockets
  6. Virtual Waiting Room / Queue System ❌ Yoğun trafik sırasında

    web sitesi çöker ve olumsuz kullanıcı deneyimi riski oluşur. ✅ Yoğun talep dönemlerinde trafik kontrol edilir. Sunucu ve veritabanı ölçeklendirme maliyeti azalır.
  7. Backpressure Yüksek trafik alan sistemlerde, sistemin kapasinden çok yük gelebilir.

    Sistemin çökmesini engelleyen hayati bir savunma mekanizmasıdır. Sınırlama: Gelen istek hızını doğrudan kısmak veya kuyruğa limit koymak. Durdurma ve Bildirme: “Şu an kapasitem bu kadar” mesajı vermek. Bırakma: Sistem kapasitesi aşılınca, yeni gelen verileri kabul etmeden yok etmek.
  8. Resilliency - Dayanıklılık Retry Timeout Circuit Breaker -Belirli aralıklarla tekrar

    denemek. -Her isteğe mutlaka bir üst süre tanımlanır. -Problemli servisler devre dışı bırakıldı. -Network kaynaklı erişim problemi ve timeout hataları için yeniden deneme stratejisidir. -Sonsuza kadar cevap vermesini beklemeyiz. -Hata devam ediyorsa istek yapılmasını önlemek. -Sonsuz deneme yapılmamalıdır. -Uygulamayı ve kaynakları korumak.
  9. Rate Limiting Brute force, DoS Ataklarına karşı savunma mekanizması oluşturmak.

    Sunucu kaynaklarını yönetmek ve korumak. Aniden artan taleplere karşı trafiği kontrol etmek. Algoritma Seçimi: Token Bucket, Leaky Bucket, Fixed Window, Sliding Window Sunucu tarafında konumlandırmak istemci tarafına göre daha yönetilebilir ve güvenlidir. Sunucudaki Rate Limiter Client ile Sunucu Arasındaki Rate Limiter
  10. Reverse Proxy Reverse proxy, sunucu adına çalışır. Client isteği reverse

    proxy’e gönderir. Güvenlik ve performans sağlar. Örnek olarak, Load Balancer
  11. API Gateway Birden fazla servis için tek bir giriş noktası

    sunar. Teknik olarak bir reverse proxydir. Kullanım Yerleri: Routing, Rate Limiting, Authentication, Load Balancing API Gateway Olmayan Senaryo API Gateway Olan Yapı
  12. Load Balancing Esneklik, yüksek performans ve süreklilik için trafiği birden

    fazla sunucuya dağıtır. Stratejiler: Round-robin, Least Connection, IP Hash Horizontal scaling(scale-up) altyapıyı genişletme eylemidir. Load balancing ise bu genişleyen altyapının verimli çalışmasını sağlayan yönetim mekanizmasıdır. Dengelenmiş Yük Dağılımı
  13. Doğru Veri Tabanı Modeli Seçimi SQL NoSQL -Veriler tablo formatında

    tutulur ve kaydedilmeden önce kolonları, veri tipleri ve kısıtları belirlenmiştir. -Esnek yapıdadır. Önceden tanımlı olmayan yeni veri tipleri veya alanlar eklenebilir. -ACID kurallarına bağlıdır. -ACID kurallarına katı bağımlı değildir. -Veri bütünlüğü ve tutarlılığı sağlar. -Ölçeklenebilirlik ve performansa önem verir. -Karmaşık sorgular, join yapıları ve aggregation işlemleri -Scale-up tasarlanmıştır. -Sharding daha kolay yapılır. -Scale-out tasarlanmıştır.
  14. Veri Tabanı Ölçeklendirme Çözümleri Indexing: Filtreleme, arama, join işlemleri Replication:

    Master-slave mimarisi Sharding vs Partitioning: Büyük tablonun parçalara ayrılması için stratejiler. Verilerin tutulduğu fiziksel konum farklılığı var.
  15. Caching Cache kullanmak nasıl maliyetlerden kurtarır? Network çağrımı, verilerin işlenmesi,

    sonucun uygulamaya aktarılması Bellekten veri okumak, diske göre hızlıdır. Cache Aside Pattern
  16. Sürdürülebilir Cache-Aside Pattern TTL (Time to Live): TTL süresi dolduğunda

    kendiliğinden silinmelidir. Cache-invalidation: Cachedeki veriler ne zaman geçersiz hale getirilecektir? LRU — Least Recently Used: Uzun süredir kullanılmayan kayıtların temizlenmelidir. Cache sunucusunda hata olursa alternatifleri düşünmek ve sürekliliği sağlanması gerekir.
  17. Metriklerin İzlenmesi Altyapı Metrikleri Handle count thread count bellek tüketimi

    CPU kullanımı Uygulama Metrikleri İşlem adeti Yanıt süresi
  18. Araç Çantamızda Bulunması Gerekenler Gereksinim Analizi (Functional & Non-Functional) Hedefi

    Belirleyen Kritik Metrikler (Throughput & Latency) API Tasarımı ve İletişim (Asenkron veya Senkron) Trafik Yönetimi (Virtual Waiting Room- Backpressure - Ratelimiting - Reverse Proxy - Api Gateway) Resillience - Dayanıklılık Yönetimi (Retry, Timeout, Circuit Breaker) Ölçeklendirme (Horizontal ve Vertical) ve Load Balancing Veritabanı Seçimi (SQL veya NoSQL) Veritabanı Ölçeklendirme Stratejileri (Indexing, Sharding, Partition, Replication, Caching ) Erişilebilirlik mi? Tutarlılık mı? (CAP Teorem, ACID ve BASE) Metriklerin İzlenmesi