Durum durumu
Taptok, Körfez işletmeleri için dijital kartvizit ve iletişim yönetimi altyapısı sağlar. Her işletme hesabı tamamen izole edilmiştir — kendi kişileri, paylaşım etkinlikleri, analitiği ve profil verileri. Binlerce kiracı genelinde 100K+ aylık işlemle, lansmanda işe yarayan tek veritabanı mimarisi darboğaz olmaya başlıyordu.\n\nSpesifik sorun sorgu türleri arasındaki çekişmeydi. İşlemsel sorgular — iletişim kayıtları oluşturma, kart paylaşımı kaydetme, profil verisi güncelleme — hızlı ve tutarlı olmalıdır. Analitik sorgular — rapor dışa aktarma, toplamalar, kullanım özetleri — ağırdır ve biraz eski olması kabul edilebilir. Paylaşımlı bir veritabanında, uzun süren bir analitik sorgu satırları kilitleyebilir veya aktif kullanıcılar için işlemsel operasyonları yavaşlatabilir.\n\nKiracı tabanlı bir parçalama şeması tasarladık. Kiracılar tutarlı bir hashing stratejisine dayalı olarak parçalara dağıtılır. Uygulama düzeyinde yönlendirme sorgular doğru parçaya şeffaf şekilde yönlendirir. Kapasite eklemek bir parça eklemek anlamına gelir, tek bir sunucuyu dikey ölçeklendirmek değil.\n\nAnalitik tamamen ayrıştırıldı. Olaylar Redis'e akar, toplu işler bunları bir program dahilinde toplar ve sonuçlar işlemsel sorgu yolunda hiç olmayan özel bir raporlama deposuna iner. Aktif kullanıcılar herhangi bir rapor yükü altında bile saniye altı işlemsel yanıtlar görür.\n\nTDD yeniden yapılanma boyunca uygulandı. Her servis sınıfının şipilemeden önce test kapsamı var — ekip güvenle değişiklik yapabilir.
Ne değiştirmeliydi
Tek veritabanı mimarisi kapasiteye yaklaşıyordu. Uzun analitik sorgular I/O ve kilitler için işlemsel sorgularla yarışıyordu — aktif kullanıcılar rapor oluşturma sırasında yavaşlama yaşadı. Test kapsamı olmadan, çekirdek işlem mantığını değiştirmek riskli. Dikey ölçeklendirme pahalı hale geliyordu ve bir tavanı vardı.
Ne değiştik
Tutarlı hash yönlendirmeli kiracı tabanlı parçalama — yatay ölçeklenebilir, uygulama şeffaf. Analitik Redis olay hattına → arka plan toplamaya → raporlama deposuna ayrıştırıldı. İşlemsel veritabanında sıfır analitik sorgu yükü. TDD yeniden yapılanma boyunca uygulandı — tüm çekirdek işlem yollarında kapsamlı test kapsamı.
Müşteri ne kazandı
- 01 Yatay parçalama — sunucu değil parça ekleyerek ölçeklen
- 02 Analitik tamamen işlemsel veritabanının dışında
- 03 AWS (EC2, RDS, Docker) üretim altyapısı
- 04 Boyunca TDD — değiştirmek güvenli, göndermek güvenli