Tek veri tabanı, ayrı şema, ayrı küme — hangi sınır hangi senaryoya yakışıyor? Ürünlerimizde uygulayıp ölçtüğümüz üç farklı yaklaşımı kıyaslıyoruz.
Üç ana model
Multi-tenant bir SaaS kurarken üç temel yaklaşım var: tek veritabanı + müşteriye ait kolon, paylaşılan veritabanı + müşteriye ait şema ve müşteriye ait izole veritabanı. Her birinin çalıştığı yer farklı; biri 100 müşteri için doğru olabilirken, diğeri yalnızca 5 büyük kurumsal müşteri için isabetli.
Operasyonel maliyet
Şema-bazlı yaklaşımda migration'lar her tenant için tekrarlanır; "schema_per_tenant" çözümleri sayıyı 200'ün üstüne çıkardığında pgbouncer ve max_connections baskısı bir gerçek haline gelir. Önce bunu mimaride değil, üretim hattınızda göreceksiniz.
Gerçek dünyadan
Kullanıcı sayısı hızla büyüyen bir üründe paylaşılan veritabanı + tenant kolonu modeli bizi uzun süre rahat taşıdı. Denetim gereği raporlama izolasyonu isteyen bir kurum projesinde ise ayrı şema şarttı. İkisi de doğru — çünkü gereksinim farklı.
Karar çerçevesi
Veri sınırını seçerken üç soruyu cevaplayın: 1) Yasal/sektörel zorunluluk ne? 2) Tenant başına yük profili nedir? 3) Yedekleme ve geri yükleme stratejiniz tenant başına mı, küresel mi? Bu üç sorunun cevabı, geriye bir tane seçim bırakır.