El equipo de desarrollo de Rivet ha presentado una nueva funcionalidad que promete transformar la manera en que se construyen sistemas distribuidos y aplicaciones de inteligencia artificial: almacenamiento nativo de SQLite para cada actor, liberado bajo licencia Apache 2.0.
La propuesta parte de un concepto fundamental: asignar una base de datos SQLite independiente a cada entidad del sistema, ya sea un agente de IA, un inquilino en una arquitectura multiusuario, un usuario individual o incluso un documento colaborativo. Esta aproximación permite crear millones de bases de datos aisladas que funcionan en paralelo, escalando horizontalmente sin los compromisos tradicionales que imponen las bases de datos monolíticas.
Rivet Actors se posiciona como una alternativa de código abierto a los Durable Objects de Cloudflare, una solución propietaria que colocaba computación y almacenamiento en la misma localización física. Sin embargo, la nueva funcionalidad de Rivet ofrece ventajas significativas respecto a otras soluciones existentes en el mercado.
Comparada con Turso Cloud, una plataforma especializada en SQLite distribuido, la arquitectura de Rivet mantiene las lecturas locales y actualizadas, evitando la latencia inherente a las consultas remotas. Mientras que Turso requiere que los clientes consulten la base de datos a través de la red, Rivet implementa un modelo de único escritor dentro de cada actor, garantizando coherencia y rendimiento inmediato.
La solución se diferencia claramente de herramientas como Litestream, rqlite o LiteFS, que se diseñaron para replicar y escalar una única base de datos SQLite. Rivet, por el contrario, está optimizado para gestionar múltiples instancias aisladas de SQLite funcionando simultáneamente.
Desde el punto de vista técnico, SQLite se ejecuta en el mismo proceso que cada actor. Un sistema de archivos virtual personalizado persiste las escrituras en almacenamiento de alta disponibilidad, ya sea FoundationDB o PostgreSQL, proporcionando durabilidad sin sacrificar el rendimiento de acceso local.
Los casos de uso son amplios y variados. Para agentes de IA, cada agente dispone de su propia base de datos para almacenar historial de mensajes, estado interno y embeddings de vectores. En arquitecturas multiinquilino, Rivet ofrece aislamiento real a nivel de datos sin necesidad de confiar en controles de acceso a nivel de fila —las llamadas "RLS hacks"— que tradicionales bases de datos relacionales requieren. En documentos colaborativos, cada documento obtiene su propia base de datos con capacidades nativas para colaboración en tiempo real. Para aplicaciones de múltiples usuarios, el modelo escala horizontalmente manteniendo datos completamente aislados y ejecutándose en el perímetro de la red.
Esta arquitectura resuelve un problema histórico en sistemas distribuidos: la dicotomía entre escalabilidad y flexibilidad. Bases de datos como Cassandra y DynamoDB alcanzan escalabilidad masiva mediante claves de partición, pero obligan a los desarrolladores a adaptarse a esquemas rígidos, opciones limitadas de consulta y migraciones complejas. SQLite por entidad ofrece la misma escalabilidad horizontal manteniendo la flexibilidad y potencia de un motor SQL completo.
Rivet Actors complementa este almacenamiento con funcionalidades adicionales: comunicación en tiempo real mediante WebSockets, integración nativa con React a través de hooks personalizados, escalabilidad horizontal automática y suspensión de actores inactivos para optimizar recursos.
El proyecto se alinea con la tendencia creciente en la industria de trasladar inteligencia y almacenamiento hacia el perímetro de la red, reduciendo latencia y aumentando la resiliencia. En un contexto donde los agentes de IA se vuelven cada vez más sofisticados y requieren gestionar estado complejo, esta solución representa un paso significativo hacia arquitecturas más simples y eficientes.