cifraHQ Enterprise
Arquitectura

Una base de datos por cliente. Sin excepciones.

El único patrón de aislamiento escalable para cumplimiento regulatorio LATAM. Así está diseñada cifraHQ Enterprise desde la primera migración.

El patrón

Tres decisiones que se sostienen mutuamente

Aislamiento

Base de datos por tenant

No row-level, no schema-per-tenant. Cada cliente tiene su propia base SQL Server. Respaldo, restauración y baja limpia por cliente.

Economía

Azure SQL elastic pools

Miles de bases de datos compartiendo DTU/vCore. Escala a 5,000+ tenants sin costo lineal por instancia.

Control plane

CiferaHQ_master

Catálogo maestro en su propio elastic pool con geo-replicación. Tenants, licencias, salud — separados del plano de datos.

El diagrama

Tres capas, una verdad

Servidor de Licencias Catálogo maestro Tenant A Tenant B Tenant C Base de datos por tenant
Aislamiento físico en SQL elastic pool

La capa de servicios compila una vez y se despliega a todos los tenants. La capa de datos se particiona físicamente: cada cliente es una base de datos independiente. La capa de control (CiferaHQ_master + servidor de licencias) gobierna quién entra, a qué tenant, con qué permisos.

Por qué así

Lo que compra el aislamiento físico

  • Residencia de datos. Cuando un regulador pregunta dónde vive su información, la respuesta es una base de datos específica — no un predicado WHERE TenantId = ?.
  • Respaldo por cliente. Point-in-time restore por tenant. Si un cliente hace algo catastrófico, no arrastra a los demás.
  • Baja limpia. Cuando un cliente termina su contrato, su base se exporta y se elimina. Sin residuos en tablas compartidas.
  • Cumplimiento CFDI / NF-e / SUNAT. México, Brasil y Perú exigen separación evidenciable de datos fiscales. Row-level no basta.
  • Provisioning asincrónico. Crear un tenant es una saga Hangfire (crear DB → migrar esquema → seed COA → blob → admin → email), no un INSERT.
  • Aislamiento probado. Pruebas de fuzzing cross-tenant forman parte del pipeline de CI — no una auditoría anual.
Stack

Las piezas, nombradas

  • .NET 10 + EF Core para el plano de servicios. Blazor Server + Radzen para el frontend operativo.
  • Azure SQL Database con elastic pools por región. CiferaHQ_master aislado en su propio pool.
  • Hangfire para todo el trabajo en segundo plano: provisioning, FOREX diario, rollover fiscal, envío de correo, reconciliación de blobs.
  • Azure Blob Storage para archivos binarios (adjuntos, PDFs, logos). Nunca dentro de la base de datos.
  • Stimulsoft para PDF archivable. Radzen Blazor para dashboards interactivos.

Hablemos de aislamiento en detalle

Demo técnica sobre provisioning, respaldo por tenant y pruebas de aislamiento.

Agendar demo