Kitap II / III The Unreliable Systems Trilogy
Güvenilir Event-Driven Sistemler Tasarlamak
Mesajlaşma, retry, idempotency, outbox, ordering ve schema evolution
Ağlar, broker'lar, deploy'lar ve insanlar yanlış davrandığında bile event-driven sistemleri doğru tutan örüntülere dair pratik bir rehber.
- 340 sayfa
- 1. baskı
- Ücretsiz
English baskının sayfası: /books/designing-reliable-event-driven-systems/
Kayıt yok, e-posta yok. Lisans: © 2026 Muhammet Şafak — ücretsiz indirilir ve okunur
Kitabın tezi
message broker'lar
failure semantics
- 01
Failure semantics
Bir mesaj geciktiğinde, kaybolduğunda, çoğaldığında ya da sırası bozulduğunda ne olacağını tanımlayın.
- 02
Teslimat ve çoğalma
At-least-once teslimatı bir gerçek olarak kabul edin ve handler'ları iki kez çalışmaya dayanıklı yapın.
- 03
Kurtarma ve replay
İşler ters gittikten sonra sistemin yolunu nasıl bulacağını önceden planlayın.
Kitap hakkında
Bir instance siparişi veritabanına yazdı ve event’i göndermeden kapandı; alarm çalmadı. Ertesi sabah bir alıcı “verildi” görünen bir siparişe bakıyordu: Payments hiçbir kartı yetkilendirmemiş, Inventory hiçbir ürünü ayırmamıştı. Sahne, Parcelly adlı kurgusal bir pazar yerinde geçer ve ortada alışılmış anlamda kodlanmış bir hata yoktur: her satır yazdığını yaptı, sistem veritabanı commit’i ile ağ çağrısı arasındaki boşlukta bozuldu.
Kitabın iddiası, sorunun message broker’larda değil failure semantics’te olduğudur: bir mesaj geciktiğinde, kaybolduğunda, çoğaldığında ya da sırası bozulduğunda ne olacağına önceden karar vermek. Açılış sahnesindeki boşluğun adı dual-write problemidir; kitap onu transactional outbox ile kapatır, ardından teslimat, çoğalma, kurtarma ve replay konularına geçer.
Kitap hiçbir broker’a özel değildir ve izlendiğinde sisteminizin doğru olacağını vaat etmez. Güvenilirlik sonradan eklenen bir özellik değil; hangi hataları nasıl ele alacağınıza ve hangilerini bilerek kabul edeceğinize verdiğiniz kararlardır. Her numaralı bölüm örüntünün maliyetini, sık yapılan hataları ve ne zaman kullanılmaması gerektiğini söyler.
İçindekiler
- 01 Önsöz
- 02 Happy Path'in Yalanı
- 03 Mesajlaşma Semantiği
- 04 Pratik Bir Hata Modeli
- 05 Dual-Write Problemi ve Transactional Outbox
- 06 Relay'ler, Polling ve Change Data Capture
- 07 Retry'ı Doğru Yapmak
- 08 Idempotency
- 09 Poison Message'lar ve Dead Letter'lar
- 10 Ordering
- 11 Saga'lar ve Uzun Süren İş Akışları
- 12 Event Tasarımı
- 13 Schema Evolution
- 14 Observability ve Reconciliation
- 15 Recovery, Felaketler ve Broker Migration
- 16 Event-Driven Sistemleri Test Etmek
- 17 Bir Güvenilirlik Kontrol Listesi ve Kapanış Düşünceleri
- 18 Ek: Sözlük ve Örüntülere Hızlı Başvuru
Sık sorulanlar
3 soru
-
Kitap kimin için?
Event'ler üzerinden haberleşen sistemler kuran ya da işleten backend ve platform mühendisleri ile tech lead'ler için.
-
Belirli bir message broker'a ya da programlama diline ihtiyacım var mı?
Hayır. Kitap belirli bir broker için öğretici değildir; broker'dan bağımsızdır, dilden bağımsız pseudocode ve Mermaid diyagramları kullanır.
-
Kitabı izlersem sistemim doğru çalışır mı?
Kitap bunu vaat etmez. Güvenilirliği, nasıl ele alacağınıza karar verdiğiniz ve bilerek kabul ettiğiniz hataların toplamı olarak görür; at-least-once teslimatı bir gerçek olarak kabul etmenizi ve handler'ları iki kez çalışmaya dayanıklı yapmanızı ister.