Plataforma SaaS multi-tenant para clientes B2B
Plataforma SaaS B2B con múltiples clientes, administración centralizada y personalización por tenant. Rol: diseño de arquitectura, backend y modelo de datos.
Problema
El sistema debía soportar múltiples empresas con reglas particulares por cliente, manteniendo aislamiento de datos, trazabilidad por tenant y la posibilidad de evolucionar el producto sin romper integraciones existentes.
Enfoque
Se definió un enfoque multi-tenant sobre un esquema único, con filtros aplicados en la capa de acceso a datos, junto con un middleware de resolución de tenant por dominio y encabezados.
Los contratos de la API se diseñaron de forma explícita y versionada, alineados con bounded contexts del dominio, para poder introducir nuevas capacidades sin afectar clientes existentes.
Decisiones técnicas
- API REST en .NET 7 siguiendo principios de Clean Architecture para separar aplicación, dominio e infraestructura.
- Uso de Arquitectura Hexagonal (Ports & Adapters) para aislar el dominio de frameworks y proveedores externos.
- Modelo de datos multi-tenant en SQL Server con TenantId explícito y validaciones en la capa de acceso a datos.
- Autenticación basada en JWT con claims de tenant y rol, integrando un proveedor de identidad externo.
- Logging estructurado y métricas con identificación de tenant para diagnósticos, observabilidad y seguimiento de performance.