~/proyectos
lightq-node
Cola de trabajos en memoria para Node.js: cero dependencias en producción, TypeScript completo, concurrencia, prioridades, reintentos con backoff exponencial y cancelación por ID.
problema
Necesitaba un sistema de cola ligero para proyectos Node.js sin querer arrastrar Redis, BullMQ ni ninguna dependencia de runtime. Las opciones existentes eran o demasiado pesadas o carecían de reintentos con backoff y cancelación granular.
arquitectura
Módulo ESM/CJS con zero runtime deps. Prioridad FIFO por cola interna, workers concurrentes con semáforo, AbortController por job para timeouts y cancelación. Backoff exponencial configurable con jitter. Distribuido como paquete npm dual-format.
decisiones
- ›Zero runtime dependencies: la cola es solo TypeScript compilado, lo que la hace embebible en cualquier proyecto sin lockfile extra.
- ›Dual ESM/CJS con tsup: compatible con proyectos modernos y legacy sin fricción.
- ›AbortSignal en cada job: permite cancelación y timeout sin boilerplate externo.
- ›Dead letter via rechazo controlado: los jobs que agotan reintentos lanzan el error al caller, que decide qué hacer.
diagramas
// ciclo de vida de un job
// estructura interna
// backoff y reintentos