El equipo de Deno ha desarrollado celld, un runtime distribuido para aplicaciones de Cloudflare Workers y Durable Objects que opera con una dependencia externa mínima: un almacén de objetos compatible con S3. Dado que los sistemas distribuidos dependen de suposiciones que no siempre se cumplen en la práctica, como la fiabilidad de la red o la latencia nula, el proyecto implementa pruebas de simulación determinista (DST) para garantizar la fiabilidad del código de producción.
La técnica DST ejecuta el código de celld en un entorno controlado por un simulador que puede manipular el orden de los eventos, retrasar operaciones de almacenamiento o acelerar el tiempo simulado. Esto permite reproducir secuencias de fallos específicas que dependen de la interacción entre mensajes retrasados, escrituras fallidas y reinicios de nodos. El simulador utiliza un generador de números aleatorios con semilla para explorar diferentes escenarios dentro de límites configurados, permitiendo a los desarrolladores repetir ejecuciones fallidas para investigar la causa raíz.
Un caso de estudio destacado en el artículo describe un error de carrera en la gestión de alarmas. celld reutiliza entradas de activación (wake entries) en el almacenamiento de objetos para reactivar celdas sin escribir en la base de datos SQLite. El bug surgió cuando la limpieza de una alarma antigua eliminaba la entrada de activación necesaria para una alarma nueva antes de que esta se ejecutara, violando un invariante crítico. El simulador detectó esta violación al explorar el orden de ejecución de las peticiones pendientes, permitiendo a los ingenieros reproducir y corregir el error antes de que afectara a la producción.
