Saltar al contenido
Producto SaaS Empresarial

Plataforma ERP Multi-Tenant

Un ERP de microservicios construido desde el primer día para el aislamiento de inquilinos, despliegue independiente y escalado ingenieril honesto.

Año 2025
Duración 14 meses
Equipo 4 ingenieros
Estado En vivo · primeros clientes

Un vistazo al producto.

Nos propusimos construir un ERP moderno que no obligara a las pequeñas y medianas empresas a caer en la trampa clásica de «monolito o nada». Los sistemas listos para usar como SAP u Odoo traían costes de licencia empresarial o requerían meses de personalización para adaptarse a los flujos reales de trabajo.

Nuestra tesis era simple: dividir el problema en servicios pequeños y desplegables de forma independiente desde el primer día — incluso cuando cada instinto de un equipo pequeño dice que lances un monolito modular y extraigas después. Catorce meses después, ese compromiso ha moldeado cada decisión técnica y operativa que hemos tomado desde entonces.

Desafio

Las empresas de retail, servicios y distribución necesitan todas un CRM, un módulo contable y un sistema de inventario — pero las reglas, los campos y los flujos divergen claramente. Un monolito tradicional maneja esa divergencia apilando banderas de configuración hasta que el código se convierte en un museo de casos especiales.

Nuestras restricciones eran más duras: aislamiento completo de datos por inquilino (sin esquemas compartidos), cadencia de despliegue independiente por módulo (el CRM despliega sin bloquear al Inventario), consistencia entre servicios en menos de un segundo y una UI única y coherente a pesar de un backend fragmentado — todo sobre una infraestructura que una pyme pueda permitirse.

Enfoque

Elegimos polyrepo en lugar de monorepo por la independencia de despliegue. 41 repositorios en total: 16 servicios backend, 10 microfrontends Vue 3, una biblioteca de UI compartida, un SDK de autenticación JWT y módulos de infraestructura. Cada servicio backend es una aplicación Laravel enfocada con su propio esquema PostgreSQL.

Los servicios se comunican exclusivamente a través de NATS JetStream — sin llamadas HTTP directas entre servicios. Las peticiones síncronas del navegador pasan por un API Gateway Kong que enruta al servicio correcto y maneja la validación JWT. La UI se compone en tiempo de ejecución con Rsbuild Module Federation, por lo que CRM e Inventario pueden entregar nuevas funcionalidades de forma independiente sin reconstruir el shell.

El aislamiento de inquilinos se aplica a nivel de base de datos mediante Row-Level Security de PostgreSQL, aprovisionado por inquilino por CloudNativePG. Un ID de inquilino viaja en la cabecera de cada mensaje NATS. Si un servicio olvida filtrar una consulta, RLS lo atrapa — no la vigilancia humana.

Nos comprometimos con los microservicios desde el primer día — incluso cuando cada instinto de un equipo pequeño dice que lances un monolito y extraigas después.

Capacidades clave entregadas.

  • 16 servicios Laravel enfocados cubriendo CRM, Contabilidad, Inventario, RRHH, Workflow, Tickets, Reportes y más
  • Esquemas PostgreSQL aislados por inquilino, con row-level security aplicado
  • Bus de eventos NATS JetStream con entrega garantizada entre servicios
  • 10 microfrontends Vue 3 federados en runtime — desplegados de forma independiente
  • Despliegues Kubernetes basados en Helm sobre clústeres RKE2
  • SDK JWT compartido, consumido por cada servicio y microfrontend
  • Stack de observabilidad completo: métricas Prometheus, logs Loki, trazas Tempo
  • Aprovisionamiento automático de inquilinos, con base de datos dedicada por cliente

Resultados concretos, medidos en producción.

Deploy Time
2–3 min
Git push a producción, por servicio
p95 Latency
< 180ms
Bajo pruebas de carga realistas
Tenant Leaks
Cero
6 meses de pen-testing, sin acceso entre inquilinos
Scale
41 repos
Límites claros, responsabilidad clara por servicio

La plataforma soporta inquilinos ilimitados sin contaminación cruzada. Cada servicio se despliega de forma independiente mediante charts de Helm sobre Kubernetes RKE2, con observabilidad total a través de Prometheus, Grafana, Loki y Tempo. Tiempo medio de despliegue: menos de 3 minutos por servicio.

Tecnologías utilizadas, agrupadas por rol.

Backend
Laravel 12 PostgreSQL NATS JetStream Valkey CloudNativePG
Frontend
Vue 3 TypeScript Rsbuild Module Federation
Infraestructura y observabilidad
Kubernetes (RKE2) Helm Prometheus Grafana Loki Tempo