PiyanosPiyanos
← Blog
Engineering2026-01-201 min read

Çok kiracılı (multi-tenant) mimariye doğru

Tek müşteriden çok müşteriye geçişte mimari kararlar — gerçek senaryolardan notlar.

Problem nedir?

Başlangıçta tek bir müşteri için geliştirilen SaaS ürünleri, büyüdükçe her müşteri için ayrı sunucu/veritabanı yönetmek zorunda kalıyor. Bu hem maliyetli hem de yönetilemez.

Üç temel yaklaşım

1. Siloed (tam izolasyon)

Her müşteri kendi veritabanı ve sunucusuna sahip. Güvenli ama pahalı.

2. Shared schema

Tek veritabanı, tüm tablolarda tenant_id kolonu. Ucuz ama veri sızıntısı riski yönetilmeli.

3. Separate schema

Tek veritabanı motoru, her tenant için ayrı schema. İyi bir denge noktası.

Bizim tercihimiz

Mainty'de separate schema yaklaşımını benimsedik. PostgreSQL'in schema desteği bu geçişi yönetilebilir kıldı.

Geçiş süreci

  1. tenant_id kolonlarını ekle
  2. Row-level security politikalarını yaz
  3. Bağlantı havuzunu tenant-aware hale getir
  4. Kapsamlı test — özellikle cross-tenant veri erişimi için