Kiracılar, hostlar ve veri kümesi filtresi
ToRun, ABP Framework'ün çok kiracılı modeli üzerine inşa edilmiştir. IsMultiTenant olarak işaretlenen bir satır, framework'ün otomatik olarak filtrelediği bir TenantId sütununa sahiptir; bir kiracı bağlamından gelen sorgular asla başka bir kiracının satırlarını görmez. Host bağlamı (TenantId == null) farklı bir dilim görür — SubscriptionPlan, AiProvider ve LegalDocument gibi kanonik kataloglar orada yaşar.
Host'u neden birinci sınıf katılımcı olarak ele alıyoruz
Çoğu SaaS ürünü, host'u "yönetici aracı" olarak iliştirir. Biz onu kardeş bir kiracı olarak modelliyoruz: host'un kendi panoları, kendi yapay zeka politikaları ve kendi faturalandırma ilişkileri vardır. Bu, kendi üretim trafiğimizi her müşterinin kullandığı aynı ilkeler üzerinde çalıştırmamıza izin verir.
Kiracı başına plana bağlı özellikler
Abonelik planları FeatureLimit, Entitlement, Capability ve Mode satırlarını taşır. Bir kiracı bir planı etkinleştirdiğinde, erişebileceği özellik kümesi planlarının ve genel kataloğun kesişimidir. Yeni bir mod eklemek her kiracıya dokunmayı gerektirmez — bulundukları plan onu içerdiğinde otomatik olarak alırlar.
Çağrı başına BYOK enjeksiyonu
Paylaşılan altyapıda bile, BYOK kimlik bilgileri sahibi kiracıyla sınırlı kalır. Her yapay zeka isteği, kimlik bilgilerini aynı veri filtresini kullanarak kiracı bağlamı içinde çözer; depolama katmanında kiracılar arası anahtar sızıntısı mümkün değildir.
Kasıtlı olarak yapmadıklarımız
Kiracıları veritabanı veya işlem düzeyinde izole etmiyoruz. Kiracı başına bir veritabanı yaklaşımının ölçeklendirme maliyeti, yaratıcı pazaryeri bir ürünün birim ekonomisini öldürür. Şemanın birinci günden itibaren bunun için tasarlandığı durumda, veri kümesi filtresi artı kiracı başına önbellek kapsamı yeterlidir.