Spindle, el motor de flujos de trabajo del proyecto Tangled, suma un segundo motor de ejecución llamado microvm, que se suma al ya existente Nixery y es totalmente compatible con él. Cada flujo de trabajo se ejecuta ahora dentro de su propia micro máquina virtual: un entorno completo, con sistema operativo real, en el que se pueden lanzar servicios, compilar dependencias o construir imágenes de Docker sin afectar al anfitrión.
A diferencia de una máquina virtual convencional, una microVM prescinde de la BIOS, el bus PCI o la tarjeta gráfica emulada y deja solo los dispositivos virtio, lo que reduce el tiempo de arranque y el consumo de memoria. Por ahora, el único hipervisor soportado es QEMU, aunque la arquitectura está preparada para incorporar otros como Firecracker. Dentro del invitado, un pequeño agente escrito en Rust se conecta con el anfitrión a través de vsock, evitando el uso de SSH: recibe cada paso del flujo como un mensaje, lo ejecuta como usuario sin privilegios y devuelve la salida y el código de retorno.
El motor admite dos tipos de imágenes. Las imágenes NixOS se configuran directamente desde el archivo YAML del flujo: dependencias, servicios como PostgreSQL, virtualización (por ejemplo Docker) y caches binarios se declaran en el manifiesto, y el invitado reconstruye y activa esa configuración antes de ejecutar los pasos. Las imágenes que no son NixOS, hoy solo Alpine, carecen de esa configuración declarativa, pero pueden aprovechar el cache de Nix si lo llevan dentro.
Para acelerar ejecuciones repetidas, Spindle emplea un cache de Nix bidireccional: las dependencias y derivaciones construidas dentro de una microVM se suben al cache del anfitrión, y los siguientes flujos que las necesiten las descargan a través de un proxy de lectura. Todo el sistema es autoalojable y se distribuye junto al resto de Tangled.
