Saltar al contenido
← Volver a proyectos

~/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.

Node.jsTypeScript

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

enlaces