Gestión de reintentos y estados en el backend de Mainbrella

Fuentes: Handling retries and states in the Mainbrella backend

El artículo técnico detalla la arquitectura del backend de Mainbrella para resolver problemas de sincronización cuando una máquina Linux se inicia pero el cliente no recibe la confirmación. El sistema utiliza Cloudflare Durable Objects como coordinadores persistentes para gestionar la admisión de máquinas, asegurando que cada solicitud reserve un slot y un presupuesto de cómputo antes de iniciar el arranque. Esto previene conflictos de recursos cuando múltiples solicitudes llegan simultáneamente.

Para manejar reintentos, el sistema emplea claves de idempotencia que permiten al cliente identificar intentos previos sin cargar recursos duplicados. El backend registra una 'receta' de creación que expira en 24 horas; si la máquina no está activa, el reintento no reenvía la solicitud, sino que devuelve el estado actual. Además, se implementan marcas de agua de cancelación y aceptación para evitar que mensajes retrasados afecten a máquinas que ya han sido reasignadas o que están en proceso de limpieza. La autenticación se gestiona mediante credenciales Bearer y sesiones de navegador, manteniendo la integridad de la identidad del usuario. Este enfoque garantiza que las operaciones costosas, como el arranque de una máquina, se ejecuten solo una vez por solicitud válida, optimizando el uso de recursos y la experiencia del usuario.