Saltar al contenido
giron.ai
← Proyectos

Fluyapp

Cuatro años de operación continua son la única prueba que un SaaS no puede simular.

Cuándo
2022–2026
Con
co-fundador y CEO, Node.js, PostgreSQL, MongoDB, Redis, Kafka, Spark, Flink, Kubernetes sobre AWS

Cuatro años como co-fundador y CEO, desde que salí de XPLOR. Plataforma SaaS de gestión de filas y experiencia de cliente, y el ecosistema completo de microservicios que la sostiene: Node.js, PostgreSQL, MongoDB, Redis, Kafka, Apache Spark y Apache Flink, orquestado con Kubernetes sobre AWS.

Arquitectura multi-tenant desde el diseño, procesamiento de datos en tiempo real y operación continua durante los cuatro años.

Lo que enseña un SaaS que no se apaga

Un sistema que lleva años en producción ha sobrevivido a todo lo que no aparece en un diagrama: migraciones de esquema con clientes encima, la cola que se llena un lunes a las 8 a.m., el tenant que crece diez veces más rápido que los demás, la dependencia que deja de mantenerse. Ninguna de esas cosas se aprende diseñando — sólo operando.

La decisión de la que más me alegro: multi-tenant desde el día uno. Es más caro al principio y es lo único que no se puede retrofitear después sin reescribir el producto entero.

Sobre el cargo

Fui co-fundador y CEO de Fluyapp entre 2022 y 2026. Es un capítulo cerrado. Algunos agregadores de datos de terceros siguen publicando ese cargo como vigente; no lo está. Hoy soy co-fundador de El Empleado Juan.

El aislamiento, en el motor

«Multi-tenant desde el día uno» significa que la separación no depende de que nadie se acuerde de filtrar.

-- El aislamiento vive en Postgres, no en el código de la aplicación:
-- la consulta a la que se te olvide el WHERE no devuelve filas de otro
-- cliente porque el motor no la deja, no porque alguien lo revisara.
ALTER TABLE tickets ENABLE ROW LEVEL SECURITY;

CREATE POLICY tickets_por_tenant ON tickets
    USING (tenant_id = current_setting('app.tenant_id')::uuid);

-- Y la partición por mes, que es lo que evita que el cliente que crece
-- diez veces más rápido que el resto degrade a todos los demás.
CREATE TABLE tickets_2026_09 PARTITION OF tickets
    FOR VALUES FROM ('2026-09-01') TO ('2026-10-01');

Añadir esto a un esquema que ya asumía un solo cliente no es una migración: es reescribir el producto con clientes encima. Por eso es la decisión que hay que tomar el primer día o no tomarla nunca.

Escríbeme

Si estás pensando en hacer algo con IA y quieres hablarlo con alguien que ya lo puso en producción, escríbeme. Contesto yo.

hola@giron.ai