« Tüm yayınlar

Veritabanını Tersyüz Etmek: Kleppmann'ın Samza Konuşması (2015)

Martin Kleppmann'ın klasik konuşması: Apache Samza ve Kafka ile veritabanını akış tabanlı, log-merkezli bir mimariye dönüştürme fikri.

Martin Kleppmann'ın 2014 Strange Loop konuşmasının bu yazıya dökülmüş hali, geleneksel veritabanı mimarisine kökten farklı bir bakış sunuyor. Kleppmann, uygulamaların durumsuz (stateless) sunucular ve paylaşılan, değişebilir bir veritabanı etrafında kurgulanmasının, tek işlemli programlarda kaçınmaya çalıştığımız paylaşılan bellek eşzamanlılığı sorununu sistem genelinde yeniden yarattığını savunuyor. Çözüm önerisi: veriyi statik bir tablo değil, sürekli akan değişmez (immutable) olaylar dizisi olarak ele almak.

Bu fikrin somut karşılığı LinkedIn'de geliştirilen Apache Samza. Çekirdeğinde Apache Kafka'nın dayanıklı, dağıtık commit log'u yer alıyor; üzerine akışları birleştirme ve büyük veri kümelerini güvenilir şekilde yönetme araçları inşa edilmiş. Kleppmann, replikasyonun aslında zaten bir 'logical log' -yani değişikliklerin diff'i- üzerinden çalıştığını göstererek, bu mantığın uygulama mimarisine de taşınabileceğini anlatıyor.

Mühendisler için önemi: Bu konuşma, günümüzde Kafka Streams, ksqlDB, CDC (change data capture) ve event sourcing gibi log-merkezli mimarilerin kavramsal temelini oluşturuyor. Veritabanını 'iç yüzü dışarı çıkmış' bir akış işleme sistemi olarak görmek; daha basit kod, daha iyi ölçeklenebilirlik, daha düşük gecikme ve veri üzerinde daha esnek işlemler vaat ediyor.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz