Arquitectura SaaS: Lo que los fundadores no técnicos deben saber antes de construir
Las decisiones arquitectónicas clave en el desarrollo SaaS — multitenencia, autenticación, facturación, escalabilidad — explicadas para fundadores no técnicos, con orientación práctica sobre qué decidir antes de contratar a un desarrollador.
Existe un tipo específico de arrepentimiento que encuentran los fundadores de SaaS aproximadamente dieciocho meses después de iniciar su desarrollo. El producto está en producción, los primeros clientes lo están utilizando, y entonces alguien dice: "Antes de poder hacer X, tendríamos que rediseñar cómo gestionamos los tenants". O: "El sistema de facturación no fue construido para precios basados en uso — tomará tres meses remodelarlo". O, lo peor de todo: "Ese requisito de cumplimiento normativo implica aislamiento de datos por cliente, pero el sistema completo comparte una base de datos".
Estos no son errores. Son decisiones arquitectónicas que parecían razonables al inicio y que ahora son muy costosas de deshacer.
La razón por la que esto ocurre con tanta frecuencia no es que los desarrolladores hayan sido descuidados. Es que los fundadores no tenían suficiente contexto para hacer las preguntas correctas antes de que comenzara el desarrollo — y así el equipo de desarrollo optó por lo más rápido, lo más simple o lo más familiar, en lugar de lo más adecuado para donde el producto necesitaba llegar.
No necesita convertirse en un arquitecto de software. Pero sí necesita suficiente comprensión de las decisiones arquitectónicas clave en un producto SaaS para participar en la conversación, cuestionar supuestos y tomar decisiones con criterio. Para eso es esta guía.
¿Qué es la Arquitectura SaaS?
La arquitectura SaaS hace referencia a las decisiones de diseño que determinan cómo se construye, aloja y mantiene un producto de software para que pueda atender a múltiples clientes simultáneamente, gestionar suscripciones y facturación de forma automática, incorporar usuarios sin intervención manual y escalar sin necesidad de una reconstrucción completa.
Un producto SaaS bien arquitectado tiene cinco propiedades fundamentales:
- Multitenencia — múltiples clientes (tenants) comparten la misma infraestructura de aplicación, con sus datos debidamente separados
- Facturación por suscripción — los clientes pagan de forma recurrente, y el sistema de facturación gestiona planes, períodos de prueba, actualizaciones, reducciones y renovaciones de forma automática
- Incorporación de usuarios de autoservicio — los usuarios pueden registrarse, configurar su cuenta y comenzar a usar el producto sin que intervenga ninguna persona de su lado
- Diseño API-first — el núcleo del producto se expone a través de una API bien estructurada que admite integraciones, aplicaciones móviles y extensibilidad futura
- Infraestructura alojada en la nube — el producto reside en infraestructura en la nube que puede escalar hacia arriba o hacia abajo según la demanda, en lugar de servidores fijos
Estas no son características separadas que se agregan más adelante. Son propiedades arquitectónicas — o se diseñan desde el principio, o se incorporan de manera dolorosa con posterioridad. Las decisiones que determinan si su producto tiene estas propiedades se toman en las primeras semanas del proyecto.
Multitenencia: La Decisión más Importante
La multitenencia es la característica arquitectónica definitoria del SaaS. También es la decisión que tiene las consecuencias más trascendentales — para su estructura de costos, su postura de cumplimiento normativo, su capacidad de personalización para clientes empresariales y la complejidad de su base de código.
Existen tres modelos principales:
El Modelo Pool (Todo Compartido)
En una arquitectura de modelo pool, todos los clientes comparten una única base de datos (y frecuentemente una única instancia de aplicación). Sus datos se separan mediante una columna de ID de tenant en cada tabla de la base de datos. Una fila pertenece a la Empresa A, la siguiente pertenece a la Empresa B, y así sucesivamente — todas en la misma tabla.
Ventajas: El más económico de operar. El más simple de construir inicialmente. La infraestructura de base de datos escala una sola vez en lugar de una vez por cliente. Las implementaciones y actualizaciones ocurren en un único lugar.
Desventajas: Una consulta mal configurada puede exponer los datos de un tenant a otro. Los marcos de cumplimiento normativo que requieren aislamiento de datos (SOC 2, ISO 27001, ciertos requisitos del sector salud) son más difíciles de satisfacer. Los problemas de vecino ruidoso son reales — un tenant que ejecuta una consulta pesada puede afectar a todos los demás. Las configuraciones personalizadas por tenant se vuelven complicadas.
El Modelo Silo (Todo Aislado)
En una arquitectura de modelo silo, cada cliente obtiene su propia infraestructura aislada — su propia instancia de base de datos, en ocasiones su propio entorno de aplicación. Sus datos nunca entran en contacto con los datos de otro tenant a nivel de infraestructura.
Ventajas: Aislamiento de datos real por diseño. Más fácil cumplir con los requisitos de cumplimiento normativo empresarial. Un problema con el entorno de un tenant no puede afectar a otros. Es posible ejecutar versiones diferentes del producto para distintos clientes empresariales.
Desventajas: Significativamente más costoso de operar a escala. Gestionar cientos de instancias de base de datos es operacionalmente complejo. Las implementaciones y actualizaciones deben coordinarse en todos los entornos de silos. Dificulta ejecutar análisis cruzados entre tenants sobre sus propios datos de uso.
El Modelo Bridge (Aplicación Compartida, Esquemas Separados)
El modelo bridge se ubica entre los dos anteriores. Todos los tenants utilizan la misma capa de aplicación, pero cada tenant obtiene un esquema de base de datos separado (o en algunas implementaciones, una base de datos separada dentro de un clúster compartido). Los datos están físicamente separados sin la carga operacional completa del modelo silo.
Ventajas: Mejor aislamiento de datos que el modelo pool. Más simple de operar que los silos completos. Funciona bien para clientes de mercado mediano y empresarial con requisitos de cumplimiento moderados.
Desventajas: Más complejo de construir que el pool puro. La gestión de migraciones de base de datos se vuelve más difícil — se ejecuta la misma migración en múltiples esquemas. Algunas herramientas no gestionan configuraciones de múltiples esquemas de forma elegante.
| Modelo | Costo de Infraestructura | Aislamiento de Datos | Idoneidad para Cumplimiento | Complejidad Operacional |
|---|---|---|---|---|
| Pool (BD Compartida) | Bajo | Solo lógico | Básico | Baja |
| Bridge (App Compartida, Esquemas Separados) | Medio | Físico por tenant | Mercado medio/Empresarial | Media |
| Silo (Aislado) | Alto | Aislamiento completo | Empresarial/Regulado | Alta |
La respuesta correcta depende de su mercado. Si vende a pymes y no espera clientes empresariales de industrias reguladas, un modelo pool bien implementado es completamente razonable. Si su hoja de ruta incluye la venta a servicios financieros, salud, o grandes empresas con cuestionarios de seguridad, la respuesta es casi con certeza un enfoque bridge o silo — y el costo de incorporar el aislamiento después es enorme.
Esta es una decisión que debe tomarse antes de que se escriba una sola línea de código.
Autenticación e Identidad
La autenticación — verificar quién es un usuario — suena como un problema resuelto. Agregar un formulario de inicio de sesión, cifrar las contraseñas, listo. En una aplicación de consumo, eso podría ser cierto. En un producto SaaS, es considerablemente más complejo.
Un producto SaaS en producción necesita gestionar:
- Autenticación con nombre de usuario y contraseña con almacenamiento seguro, flujos de restablecimiento de contraseña y protección contra ataques de fuerza bruta
- OAuth / inicio de sesión social (Google, Microsoft, GitHub) — que los usuarios esperan cada vez más
- Autenticación multifactor (MFA) — esperada por cualquier comprador empresarial y requerida por muchos marcos de cumplimiento normativo
- Inicio de sesión único (SSO) mediante SAML 2.0 u OIDC — requerido por casi todos los clientes empresariales a partir de cierto tamaño, frecuentemente como requisito de adquisición no negociable
- Invitaciones de equipo — un usuario que invita a otros a su cuenta, con asignación de roles
- Control de acceso basado en roles (RBAC) — los administradores ven todo, los lectores ven solo lo que deben, y todo lo que hay entre medias
- Gestión de sesiones — mantener las sesiones activas de forma apropiada, gestionar sesiones concurrentes, cierre de sesión forzado al cambiar la contraseña
- Registro de auditoría de eventos de autenticación — quién inició sesión, desde dónde, cuándo y qué hizo
Construir todo esto desde cero es costoso e introduce riesgo de seguridad real. Toda implementación de autenticación personalizada tiene el potencial de introducir vulnerabilidades que los sistemas especializados ya han resuelto.
Nuestra recomendación predeterminada es usar una plataforma de identidad gestionada — Auth0, Clerk o Supabase Auth son las tres que utilizamos con mayor frecuencia. Estos servicios se encargan del trabajo pesado del cumplimiento de protocolos de autenticación, MFA, SSO y gestión de sesiones, y proporcionan SDKs que se integran limpiamente en stacks de aplicaciones modernas. No son gratuitos a escala, pero el costo de equivocarse con la autenticación — en tiempo de desarrollo, en incidentes de seguridad, o en negocios empresariales perdidos porque no puede soportar SAML SSO — es mucho mayor.
La pregunta arquitectónica clave que debe responder antes de construir: ¿cuál es el perfil de su comprador empresarial? Si espera vender a cualquier organización con un departamento de TI, el soporte de SSO no es opcional, y necesita una capa de autenticación capaz de gestionarlo.
Arquitectura de Facturación por Suscripción
La facturación es el segundo área donde vemos que los fundadores subestiman dramáticamente la complejidad. El camino feliz — el cliente se registra, introduce los datos de la tarjeta, paga mensualmente — es sencillo. Todo lo demás no lo es.
A escala, un sistema de facturación SaaS necesita gestionar:
- Períodos de prueba gratuitos (con tarjeta de crédito requerida vs. sin tarjeta requerida, conversión de prueba a pago)
- Múltiples planes de precios con diferentes funcionalidades y límites
- Actualizaciones y reducciones de plan, incluidos cargos prorrateados a mitad de ciclo
- Facturación medida — cobro basado en el uso (llamadas a API, puestos, almacenamiento, transacciones)
- Facturación anual vs. mensual con descuentos apropiados
- Facturación para clientes que pagan mediante factura en lugar de tarjeta
- Gestión de pagos fallidos, flujos de cobro de deuda y períodos de gracia
- Reembolsos y créditos
- Cálculo de impuestos (especialmente IVA/GST en múltiples jurisdicciones)
- Webhooks de su proveedor de pagos para mantener el estado de su aplicación sincronizado
Construir un sistema de facturación que gestione todo esto correctamente es un proyecto de ingeniería significativo. Los modos de fallo son costosos — tanto económicamente (cargos aplicados incorrectamente, actualizaciones fallidas) como en términos de confianza del cliente.
Nuestra recomendación estándar es Stripe Billing para la infraestructura central de facturación. Stripe gestiona la complejidad financiera — facturación, prorrateo, cobro de deuda, métodos de pago, impuestos en regiones admitidas — y lo expone a través de una API bien diseñada. El trabajo de su aplicación se convierte en gestionar los derechos de plan (a qué funcionalidades puede acceder un cliente según su plan) y responder a los webhooks de Stripe para mantener su base de datos sincronizada con el estado de facturación.
La tentación de construir la facturación internamente es casi siempre un error. Incluso si los precios de Stripe parecen elevados en relación con sus ingresos iniciales, el tiempo de ingeniería ahorrado — y las garantías de corrección que obtiene — lo convierten en la decisión correcta para casi todos los productos SaaS.
Arquitectura de Datos para SaaS
Mencionamos los modelos de datos de multitenencia anteriormente, pero la arquitectura de datos va más allá de dónde se almacenan los datos. A escala, la forma en que están estructurados sus datos determina con qué rapidez puede avanzar su producto, con qué seguridad puede realizar cambios y si puede cumplir sus obligaciones con los clientes.
Algunas cosas que deben diseñarse deliberadamente desde el principio:
Migraciones de esquema a escala. En una aplicación de base de datos única, ejecutar una migración de base de datos es una sola operación. En una arquitectura de múltiples esquemas o múltiples bases de datos, ejecutar esa misma migración significa aplicarla correctamente en cada entorno de tenant. Sin una estrategia de migración robusta (y las herramientas que la apoyen), esto se convierte en un cuello de botella de implementación a medida que crece.
Eliminaciones suaves vs. eliminaciones físicas. En la mayoría de las aplicaciones SaaS, los datos nunca deben desaparecer realmente cuando un usuario "elimina" algo. Las eliminaciones suaves (marcar un registro como eliminado sin quitarlo) habilitan la funcionalidad de deshacer, los registros de auditoría y la recuperación de datos — y son mucho más simples de implementar desde el primer día que de incorporar posteriormente.
Copias de seguridad y recuperación ante desastres. ¿Cuál es su objetivo de tiempo de recuperación (RTO) si la base de datos cae? ¿Cuál es su objetivo de punto de recuperación (RPO) — cuánta pérdida de datos puede permitirse? Estas son decisiones de negocio con implicaciones arquitectónicas. Las copias de seguridad diarias automatizadas son el mínimo; la recuperación a un punto en el tiempo es el objetivo correcto para cualquier producto donde la pérdida de datos tenga consecuencias graves.
Exportación y eliminación de datos para el RGPD. Todo producto SaaS que venda a clientes en el Reino Unido o la UE necesita poder exportar los datos de un cliente específico en un formato legible por máquina y eliminarlos permanentemente a petición. Si su modelo de datos no fue diseñado con esto en mente, cumplir con estas solicitudes manualmente a escala es doloroso.
Diseño de API
Un producto SaaS API-first trata su API como un producto de primera clase — no como una reflexión tardía para integraciones, sino como la base sobre la que se construyen tanto el frontend como los consumidores de terceros. Esto importa porque:
- Sus clientes querrán construir automatizaciones sobre su producto
- Los compradores empresariales preguntarán sobre su API en las conversaciones de adquisición
- Las aplicaciones móviles, las extensiones de navegador y las integraciones con socios dependen de la calidad de la API
- Sus propias herramientas internas (paneles de control, paneles de administración) construidas sobre la misma API refuerzan la coherencia
Los dos paradigmas de API dominantes son REST y GraphQL. REST es más simple, más ampliamente comprendido y más fácil de cachear — es el estándar correcto para la mayoría de los productos SaaS. GraphQL tiene ventajas cuando los requisitos de datos del frontend son complejos y muy variables, pero añade complejidad operacional que la mayoría de los productos en etapa inicial no necesitan.
El versionado de la API es una decisión arquitectónica que es fácil de diferir y dolorosa de agregar más tarde. Desde el principio, su API debe estar versionada (típicamente /v1/ en la ruta de la URL o mediante cabeceras), de modo que cuando realice cambios disruptivos pueda hacerlo sin obligar a todos los consumidores de API existentes a actualizar de inmediato. Romper la integración de un cliente porque cambió la forma de una respuesta de API es un problema grave de confianza.
Escalabilidad e Infraestructura
"Necesita ser escalable" es algo que casi todos los fundadores dicen en las conversaciones iniciales. Lo que realmente significa varía enormemente, y diseñar para la escala incorrecta es tanto un problema como diseñar sin pensar en la escala.
El escalado vertical significa dar a sus servidores más recursos — más CPU, más memoria, más almacenamiento. Es simple, no requiere cambios de código y funciona bien hasta cierto punto.
El escalado horizontal significa ejecutar más instancias de su aplicación simultáneamente detrás de un balanceador de carga. Maneja techos de tráfico mucho más altos, pero requiere que su aplicación sea sin estado — lo que significa que no se almacena información sobre una sesión de usuario específica en la memoria del servidor de aplicaciones. Los datos de sesión deben residir en un almacén compartido (Redis, una base de datos) al que todas las instancias puedan acceder.
La verdad honesta sobre la escalabilidad para la mayoría de los productos SaaS: no necesita diseñar para escalado horizontal desde el primer día. Un monolito bien estructurado ejecutándose en infraestructura en la nube con el tamaño apropiado puede gestionar decenas de miles de usuarios antes de que la escala se convierta en un cuello de botella. El enfoque correcto es construir con la escalabilidad en mente — sesiones sin estado, consultas de base de datos que usen índices correctamente, trabajos en segundo plano gestionados de forma asíncrona — sin sobreingeniería para una escala que quizás no alcance durante años.
Lo que sí debe invertir desde el primer día es en observabilidad: monitoreo de aplicaciones (tasas de error, tiempos de respuesta, informes de fallos), monitoreo de infraestructura (CPU, memoria, conteos de conexiones a la base de datos) y alertas que despierten a alguien antes de que los clientes noten un problema.
Las Decisiones Arquitectónicas que Tomar Antes del Día 1
Antes de que su equipo de desarrollo escriba una sola línea de código de aplicación, estas decisiones deben estar tomadas y documentadas:
- Modelo de multitenencia — ¿pool, bridge o silo? (Determinado por su mercado objetivo y requisitos de cumplimiento normativo)
- Estrategia de autenticación — ¿plataforma de identidad gestionada (Auth0, Clerk) o personalizada? ¿SSO requerido desde el primer día?
- Infraestructura de facturación — ¿Stripe Billing como fuente de verdad, con su aplicación gestionando los derechos?
- Proveedor de nube objetivo — ¿AWS, GCP o Azure? Afecta a las herramientas, las relaciones con proveedores y el mercado de talento
- Framework de frontend — ¿Next.js, Nuxt, SvelteKit? Importante para la composición del equipo a largo plazo
- Base de datos principal — PostgreSQL es la opción predeterminada correcta para la mayoría de los productos SaaS; NoSQL tiene casos de uso específicos
- Estándar de diseño de API — ¿REST o GraphQL? ¿Estrategia de versionado?
- Requisitos de residencia de datos — ¿algún cliente requiere que sus datos permanezcan dentro de una geografía específica?
- Arquitectura de implementación — monolito para comenzar, con límites claros si los microservicios son necesarios más adelante
Errores Comunes de Arquitectura en Productos SaaS que Vemos
Después de construir productos SaaS en fintech, salud, logística y servicios profesionales, tenemos una imagen clara de lo que sale mal — y cuándo.
Microservicios prematuros. Dividir un producto en microservicios antes de que los límites del dominio estén bien comprendidos crea una enorme complejidad operacional sin los beneficios. Comience con un monolito bien estructurado. Extraiga servicios cuando tenga una razón clara — un límite de propiedad de equipo, un perfil de escalado dramáticamente diferente, un límite de cumplimiento normativo. No antes.
Sin registro de auditoría. Los clientes empresariales esperan saber quién hizo qué y cuándo en su producto. Los reguladores a veces lo exigen. Incorporar el registro de auditoría de manera retroactiva en un modelo de datos que no fue diseñado para ello es doloroso y frecuentemente incompleto. Constrúyalo desde el primer día.
Supuestos de tenant codificados de forma fija. Con frecuencia vemos productos donde tenant_id se agregó a algunas tablas pero no a otras, o donde algunos trabajos en segundo plano procesan datos de forma global en lugar de por tenant. Estas inconsistencias son errores esperando a manifestarse, y se vuelven más difíciles de corregir cuanto más datos hay en el sistema.
No diseñar para la exportación de datos (RGPD y churn). Los clientes se van. Según la legislación del Reino Unido y la UE, puede estar legalmente obligado a proporcionar sus datos en un formato portable. Diseñe su modelo de datos y APIs para que esto sea posible desde el principio — no como un proyecto de emergencia cuando el equipo legal de su primer cliente empresarial lo solicite.
Acoplar incorrectamente el estado de facturación al estado de la aplicación. Usar Stripe como fuente de verdad de facturación mientras también se mantiene el estado del plan en su propia base de datos está bien — siempre que ambos se mantengan sincronizados mediante el manejo de webhooks. Regularmente vemos productos donde estas dos fuentes de verdad divergen en silencio, resultando en que los clientes tienen acceso a funcionalidades por las que no están pagando, o (peor aún) están bloqueados de funcionalidades por las que sí pagan.
Cómo Diseñamos la Arquitectura SaaS en Cyberbeak
Nuestro proceso de descubrimiento SaaS típicamente se desarrolla a lo largo de dos o tres semanas antes de que comience cualquier desarrollo. Durante ese tiempo cubrimos:
Mapeo de mercado y cumplimiento normativo. ¿Quiénes son los compradores objetivo? ¿En qué industrias se encuentran? ¿Qué marcos de cumplimiento normativo probablemente surjan en las conversaciones de adquisición? Las respuestas a estas preguntas determinan el modelo de multitenencia y los requisitos de autenticación antes de que se tome cualquier otra decisión.
Diseño del modelo de datos. Diseñamos el esquema central con multitenencia, eliminaciones suaves, registro de auditoría y exportación RGPD integrados desde el principio. Esto se hace de forma colaborativa con el equipo fundador para que todos comprendan las relaciones de datos.
Mapeo de integraciones. ¿A qué necesita conectarse el producto? ¿A qué necesita que otros productos se conecten? Esto determina las prioridades de diseño de la API y los compromisos de integración más tempranos.
Diseño de infraestructura. Seleccionamos un proveedor de nube, definimos la estructura de entornos (desarrollo, staging, producción), establecemos un pipeline de CI/CD y configuramos el monitoreo y las alertas antes de construir la primera funcionalidad de la aplicación.
Nuestro stack predeterminado para nuevos productos SaaS en esta etapa es Next.js (frontend), Node.js o Python en el backend según la composición del equipo y los requisitos del producto, PostgreSQL como base de datos principal, Stripe Billing para pagos, Auth0 o Clerk para identidad, y AWS para infraestructura. Esto no es una plantilla rígida — nos adaptamos según los requisitos — pero refleja años de experiencia construyendo y manteniendo productos SaaS en producción.
El objetivo del descubrimiento no es producir un plan perfecto. Es sacar a la superficie las decisiones que son costosas de revertir, tomarlas de forma explícita y deliberada, y dar al equipo de desarrollo una base sobre la que puedan construir con confianza.
Preguntas Frecuentes
¿Cuánto tiempo lleva la planificación de la arquitectura SaaS?
Para la mayoría de los productos SaaS en etapa inicial, una fase adecuada de descubrimiento y arquitectura toma de dos a tres semanas. Para productos más complejos — en particular aquellos con requisitos de cumplimiento normativo empresarial, modelos de datos complejos o múltiples dependencias de integración — puede tomar de cuatro a seis semanas. Esta inversión se amortiza muchas veces al prevenir costosas reelaboraciones en sprints posteriores.
¿Podemos comenzar con una arquitectura más simple y mejorarla después?
Algunas decisiones pueden diferirse — no necesita escalado automático desde el primer día, y muchas integraciones pueden agregarse a medida que el producto madura. Pero las decisiones fundamentales — modelo de multitenencia, estrategia de autenticación, infraestructura de facturación — son muy costosas de cambiar una vez que los datos de los clientes están en el sistema. Siempre recomendamos tomar estas decisiones deliberadamente desde el principio, aunque la implementación inicial sea simple.
¿Necesitamos microservicios para un producto SaaS?
Casi con certeza no en el primer día, y posiblemente no durante años. Los microservicios resuelven problemas reales, pero introducen una complejidad operacional significativa. Un monolito bien estructurado es el punto de partida correcto para la gran mayoría de los productos SaaS. Diseñamos monolitos con límites internos claros para que extraer servicios más adelante — si se vuelve genuinamente necesario — sea un proyecto manejable en lugar de una reescritura.
¿Cuál es el mayor error de arquitectura que cometen los fundadores?
El error más común y costoso es tratar la arquitectura como el problema del equipo de desarrollo en lugar de una decisión compartida. Cuando los fundadores no forman parte de la conversación sobre arquitectura, los valores predeterminados elegidos a menudo son apropiados para la interpretación más simple del producto — no para donde el producto realmente necesita llegar. Estar presente, hacer preguntas y tomar las decisiones clave de forma deliberada es una de las cosas de mayor impacto que un fundador no técnico puede hacer antes de que comience un desarrollo.
Si está en el proceso de definir el alcance de un producto SaaS y desea asegurarse de que las decisiones de arquitectura sean correctas antes de que comience el desarrollo, estaríamos encantados de conversar. Nuestro proceso de descubrimiento está diseñado específicamente para sacar a la superficie estas decisiones temprano, explicarlas con claridad y darle una base que no necesitará reconstruirse cuando su primer cliente empresarial haga las preguntas correctas. Póngase en contacto con el equipo de Cyberbeak para iniciar la conversación.
Habla con nuestro equipo sobre tu proyecto
Trabajamos con empresas en el Reino Unido, EE. UU., EAU, Arabia Saudita, Canadá, Australia y Alemania para desarrollar software personalizado, plataformas SaaS y sistemas marketplace.