Aislamiento RAG Multi-Inquilino y Fuga en Pool de Conexiones
Aísla la contaminación de contexto entre inquilinos a través de Fastify, PostgreSQL RLS, pgvector y workers de BullMQ bajo alta concurrencia.
TypeScript · PostgreSQL · pgvector · Supabase RLS · BullMQ / Redis · Fastify
- Reloj
- 45 min
- Mediana
- 38 min
- Tasa de entrega
- 29%
- Intentos
- 24
Origen
Desarrollado por AGISports sobre patrones e incidentes reales de producción.
Fuga de Vectores RAG entre Inquilinos Rivales
Una plataforma SaaS enterprise procesa búsquedas semánticas e ingesta de documentos en tiempo real para cientos de empresas en una base de datos PostgreSQL compartida con pgvector y Supabase Row Level Security (RLS).
Durante picos de tráfico concurrente, los clientes reportan que están recibiendo fragmentos de vectores RAG pertenecientes a empresas competidoras en las respuestas generadas por el sistema.
Arquitectura del Sistema · 5 Componentes Activos
Recibe peticiones HTTP, valida tokens JWT y extrae el tenant_id de la sesión.
Políticas RLS en tabla de vectores e índices HNSW para embeddings de 1536 dimensiones.
Pool de conexiones TCP reutilizables gestionadas para alta concurrencia.
Procesamiento en segundo plano de re-ranking y vectorización de documentos grandes.
Tests de desarrollo locales (npm test) y simulador de carga concurrente multi-inquilino (npm run test:load).
45 Minutos Máximo · 1 Único Git Push
Dispones de un presupuesto de reloj de máximo 45 minutos para diagnosticar el incidente con tu editor o agente de IA y realizar UN ÚNICO git push a tu repositorio forkeado cuando consideres que la solución está 100 % verificada.
Cómo se hace
- 01Forkea el repositorio de la arena, con todo el código fuente y las suites de tests del mantenedor.
- 02Empieza a grabar tu pantalla completa antes de abrir el repositorio. Lo que se puntúa es cómo decides, así que la pantalla tiene que enseñarlo.
- 03Orquesta tu IA (Claude Code, Cursor, Antigravity, Codex...) en local. No hagas pruebas a ciegas ni pushes de ensayo.
- 04Realiza UN ÚNICO git push a tu repositorio cuando consideres que la solución está lista. La marca de tiempo en verde certifica tu tiempo final.
Lee todo lo anterior antes de empezar.
Empezar comparte tu pantalla, crea tu arena y arranca el reloj — en ese orden, y nada de eso se deshace. Tienes un intento y un push.