SaaS Mimarilerinde Veri İzolasyonu Paradigması
B2B SaaS ve kurumsal platformlarda müşteri verilerinin birbirine karışması kabul edilemez bir felakettir. Kling Digital olarak uyguladığımız PostgreSQL çok kiracılı (multi-tenant) mimarisinde, her müşteri için bağımsız veritabanı veya sıkı Row-Level Security (RLS) izolasyonu uygulanır.
Dinamik Prisma İstemci Havuzu (Connection Pooling)
Her gelen istekte tenant ID çözümlenir ve ilgili veritabanı bağlantısı havuzdan (pool) çekilir:
export async function getPrismaClientByTenantId(tenantId: string | null) {
if (!tenantId) return masterPrisma;
if (tenantClients.has(tenantId)) return tenantClients.get(tenantId)!;
const tenantConfig = await masterPrisma.tenant.findUnique({ where: { id: tenantId } });
const client = new PrismaClient({ datasourceUrl: tenantConfig.databaseUrl });
tenantClients.set(tenantId, client);
return client;
}

