# Sistem Tasarımı El Kitabı


## Motivasyon > Büyük boyutlu sistemlerin nasıl tasarlandığını öğrenin. > > Sistem tasarımı mülakatlarına hazırlanın. ### Büyük boyutlu sistemlerin nasıl tasarlandığını öğrenin Ölçeklenebilir sistemlerin nasıl tasarlandığını öğrenmek sizin daha iyi bir geliştirici olmanızda size yardımcı olacak. Sistem tasarımı geniş bir konudur. İnternet üzerinde sistem tasarımı hakkında **çok miktarda dağınık** kaynaklar vardır. Bu repo, sizin ölçeklenebilir sistem tasarımını öğrenmeniz için gereken kaynakların **organize edilip bir araya getirilmiş** halidir. ### Açık kaynak komünitesinden öğrenin Bu, düzenli bir şekilde güncellenen açık kaynaklı bir projedir. [Katkıda](#contributing) bulunmaktan çekinmeyin! ### Sistem tasarımı mülakatı için hazırlanın Kodlama mülakatlarına ek olarak, sistem tasarımı birçok teknoloji şirketinin **teknik mülakat aşamasında gerekli bir bileşendir**. **Yaygın sistem tasarımı mülakat soruları** için alıştırma yapın ve sonuçlarınızı benzer çözümlerle **karşılaştırın**: Tartışmalarda, kod üzerinde, ve diyagramlarda. Mülakat hazırlığı için ek konular: * [Çalışma rehberi](#study-guide) * [Sistem tasarımı mülakat sorularına nasıl yaklaşılır](#how-to-approach-a-system-design-interview-question) * [Sistem tasarımı soruları ve cevapları](#system-design-interview-questions-with-solutions) *[Nesne tabanlı sistem tasarımı mülakat soruları ve cevapları](#object-oriented-design-interview-questions-with-solutions) *[Ekstra sistem tasarımı mülakat soruları](#additional-system-design-interview-questions) ## Anki bilgi kartları


Sağlanan [Anki bilgi kartı desteleri](https://apps.ankiweb.net/), temel sistem tasarım kavramlarını akılda tutmanıza yardımcı olmak için aralıklı olarak tekrar kullanır. * [Sistem tasarım destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design.apkg) * [Sistem tasarımı egzersiz destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/System%20Design%20Exercises.apkg) * [Nesne tabanlı tasarım egzersiz destesi](https://github.com/donnemartin/system-design-primer/tree/master/resources/flash_cards/OO%20Design.apkg) Öğrenme sürecinde kullanım için harika. ### Kodlama Kaynağı: Etkileşimli Kodlama Yarışmaları Kodlama mülakatına hazırlanmakta size yardımcı olacak kaynak mı [arıyorsunuz](https://github.com/donnemartin/interactive-coding-challenges)?


Kardeş repo'ya göz atın: [**Etkileşimli Kodlama Yarışmaları**](https://github.com/donnemartin/interactive-coding-challenges), ayrıca ek bir Anki destesi içerir: * [Kodlama destesi](https://github.com/donnemartin/interactive-coding-challenges/tree/master/anki_cards/Coding.apkg) ## Katkıda Bulunmak > Komüniteden öğrenin. Şu konularda yardımcı olmak için pull request yapmaktan çekinmeyin: * Hata düzeltmeleri * Başlıkların iyileştirilmesi * Yeni başlıkların eklenmesi * [Çeviri](https://github.com/donnemartin/system-design-primer/issues/28) Düzeltilmesi gereken içerik [geliştirme altında](#under-development) başlığındadır. [Katkıda bulunma](CONTRIBUTING.md) rehberini inceleyin. ## Sistem tasarımı başlıkarı dizini > Farklı sistem tasarımı konu başlıklarının özeti, artıları ve eksileri ile beraber **Herşeyin bir bedeli vardır** > > Her bölüm, daha ayrıntılı kaynaklara linkler içerir.


* [Sistem tasarım başlıkları: Buradan başlayın](#system-design-topics-start-here) * [Adım 1: Ölçeklenebilirlik ile ilgili ders videousunu izleyin](#step-1-review-the-scalability-video-lecture) * [Adım 2: Ölçeklenebilirlik ile ilgili makaeleyi inceleyin](#step-2-review-the-scalability-article) * [Sonraki adımlar](#next-steps) * [Performans ve ölçeklenebilirlik](#performance-vs-scalability) * [Gecikme ve verim](#latency-vs-throughput) * [Kullanılabilirlik ve tutarlılık](#availability-vs-consistency) * [TKB teorisi](#cap-theorem) * [TB - Tutarlılık ve bölünme toleransı](#cp---consistency-and-partition-tolerance) * [KB - Kullanılabilirlik ve bölünme toleransı](#ap---availability-and-partition-tolerance) * [Tutarlılık desenleri](#consistency-patterns) * [Zayıf tutarlılık](#weak-consistency) * [Nihai tutarlılık](#eventual-consistency) * [Güçlü tutarlılık](#strong-consistency) * [Kullanılabilirlik desenleri](#availability-patterns) * [Yük devretme](#fail-over) * [Çoğaltma](#replication) * [Sayılarla kullanılabilirlik](#availability-in-numbers) * [Domain ismi sistemi](#domain-name-system) * [İçerik dağıtım ağı(İDA)](#content-delivery-network) * [Push İDA'ları](#push-cdns) * [Pull İDA'ları](#pull-cdns) * [Yükleme dengeleyicisi](#load-balancer) * [Aktif-pasif](#active-passive) * [Aktif-aktif](#active-active) * [Katman 4 yükleme dengeleyicisi](#layer-4-load-balancing) * [katman 7 yükleme dengeleyicisi](#layer-7-load-balancing) * [Yatay ölçekleme](#horizontal-scaling) * [Tersine vekalet](#reverse-proxy-web-server) * [Yükleme dengeleyicisi vs tersine vekalet](#load-balancer-vs-reverse-proxy) * [Uygulama katmanı](#application-layer) * [Mikroservisler](#microservices) * [Servis keşfi](#service-discovery) * [Veritabanı](#database) * [İlişkisel veritabanı yönetim sistemi (İVYS)](#relational-database-management-system-rdbms) * [Efendi-köle çoğaltması](#master-slave-replication) * [Efendi-efendi çoğaltması](#master-master-replication) * [Federasyon](#federation) * [Parçalama](#sharding) * [Denormalizasyon](#denormalization) * [SQL ayarı](#sql-tuning) * [NoSQL](#nosql) * [Anahtar-değer stoğu](#key-value-store) * [Dökümantasyon stoğu](#document-store) * [Geniş sütun stoğu](#wide-column-store) * [Graf veritabanı](#graph-database) * [SQL veya NoSQL](#sql-or-nosql) * [Önbellek](#cache) * [İstemci önbelleklemesi](#client-caching) * [CDN önbelleklemesi](#cdn-caching) * [Web sunucusu önbelleklemesi](#web-server-caching) * [Veritabanı önbelleklemesi](#database-caching) * [Uygulama önbelleklemesi](#application-caching) * [Veritabanı sorgusu seviyesinde önbellekleme](#caching-at-the-database-query-level) * [Nesne seviyesinde önbellekleme](#caching-at-the-object-level) * [Önbellek ne zaman güncellenmeli](#when-to-update-the-cache) * [Önbellekten ayrı](#cache-aside) * [Baştan sona yazarak](#write-through) * [Arka planda yazmak (geri yazmak)](#write-behind-write-back) * [İleride yenilemek](#refresh-ahead) * [Asenkronizm](#asynchronism) * [Mesaj kuyrukları](#message-queues) * [Görev kuyrukları](#task-queues) * [Geri baskı](#back-pressure) * [İletişim](#communication) * [Geçiş Kontrolü Protokolü (TCP)](#transmission-control-protocol-tcp) * [Kullanıcı Datagram Protokolü (UDP)](#user-datagram-protocol-udp) * [Uzaktan Prosedür Çağrısı (RPC](#remote-procedure-call-rpc) * [Temsili Durum Transferi (REST)](#representational-state-transfer-rest) * [Güvenlik](#security) * [Ek](#appendix) * [İki tablonun güçleri](#powers-of-two-table) * [Her programcının bilmesi gereken gecikme numaraları](#latency-numbers-every-programmer-should-know) * [Ek sistem tasarımı mülakat soruları](#additional-system-design-interview-questions) * [Gerçek dünya mimarileri](#real-world-architectures) * [Şirket mimarileri](#company-architectures) * [Şirket mühendisliği blogları](#company-engineering-blogs) * [Geliştirme devam ediyor](#under-development) * [Bitiş](#credits) * [İletişim bilgileri](#contact-info) * [Lisans](#license)