La maggior parte dei software-as-a-service è costruita in modo multi-tenant: i dati di ogni cliente convivono fianco a fianco in un unico enorme database condiviso, separati solo da una colonna tenant_id che indica a chi appartiene ciascuna riga. È più economico da gestire e più rapido da rilasciare: un solo database da mantenere, una sola copia di tutto per tutti.
Significa anche che i tuoi prezzi, la tua lista clienti e i tuoi margini stanno nelle stesse tabelle di altre cento aziende, compreso, molto probabilmente, il tuo concorrente dietro l'angolo. Il muro che vi separa è un singolo valore in una singola colonna. Quasi sempre quel muro regge. Ma "quasi sempre" pesa parecchio in quella frase: una query sbagliata, un filtro dimenticato, un bug nella funzione di qualcun altro, e la separazione che era solo logica può lasciar filtrare i dati.
I sistemi single-tenant prendono una strada diversa di proposito. Ogni copia in esecuzione, spesso chiamata istanza, appartiene a una sola azienda, e i suoi dati vivono nel proprio database. La separazione non è una colonna di cui fidarti; è fisica.