Tienda usa SQLite en producción: ¿simple o riesgoso?

Fuentes: E-commerce store runs production system on single SQLite file

Una tienda de comercio electrónico está utilizando SQLite como su sistema de producción, una elección facilitada por Rails 8, lo que simplifica las implementaciones y elimina la gestión de servidores de bases de datos. La configuración implica cuatro bases de datos SQLite (principal, caché, cola y cable) dentro de un único volumen Docker compartido. Si bien WAL (Write-Ahead Logging) permite una gestión eficiente de la concurrencia, un incidente reciente reveló una vulnerabilidad: durante implementaciones rápidas y superpuestas, se perdieron dos pedidos a pesar de que los pagos se procesaron correctamente a través de Stripe. Esto ocurrió debido a la contención de escritura en el archivo WAL cuando múltiples contenedores intentaron escribir simultáneamente. La solución fue simple: reducir la frecuencia de las implementaciones y agrupar los cambios. El incidente destaca una limitación de SQLite en entornos con implementaciones rápidas y múltiples escritores, en comparación con sistemas como PostgreSQL. A pesar de esto, la empresa considera que SQLite sigue siendo una opción valiosa para implementaciones de servidor único con un volumen de escritura moderado, ofreciendo simplicidad y facilidad de gestión, aunque con la comprensión de que la migración a PostgreSQL será necesaria a medida que crezcan las necesidades de escalabilidad.