Motor de orquestación para tareas en segundo plano, agentes de IA y workflows durables, con SDK para Python, TypeScript, Go y Ruby, y Postgres como capa de durabilidad.
piercefreeman/waymark
Biblioteca de Python para flujos de trabajo en segundo plano duraderos y acciones que sobreviven a reinicios y fallos, con Postgres como única infraestructura.
- Estrellas
- 87
- Forks
- 5
- Issues abiertos
- 92
- Último commit
- hace 15 horas
¿Qué es?
Waymark es una biblioteca para crear tareas en segundo plano que siguen ejecutándose aunque se reinicie el servidor, fallen las tareas o los trabajos duren mucho tiempo. Su única dependencia de infraestructura es Postgres, y Python es el primer lenguaje compatible. Se definen acciones como funciones normales de Python asíncrono, que se ejecutan de forma distribuida en nodos worker, y un flujo de trabajo que las coordina mediante estructuras de control habituales, como bucles, condicionales y ramas paralelas.
Los flujos de trabajo se compilan una sola vez a partir del código Python del método run() y se convierten en una representación intermedia; después, un runtime de Rust los ejecuta y guarda instantáneas de su estado en Postgres a medida que avanzan. Si un flujo de trabajo falla, se reanuda donde se quedó, sin volver a ejecutar el código original durante la recuperación. Por este diseño, los flujos de trabajo deben seguir patrones compatibles; las llamadas no deterministas, como time o uuid, deben envolverse en acciones explícitas.
El proyecto incluye una aplicación web integrada, servida por el proceso waymark-executor, que muestra las instancias de flujos de trabajo, sus cronologías de llamadas y la carga de los nodos. También admite políticas de reintento y tiempos de espera por llamada, pausas duraderas y programaciones cron o por intervalos. El proyecto aún no ha llegado a la versión 1.0 y sus mantenedores desaconsejan usarlo en producción hasta garantizar la compatibilidad con versiones anteriores.
Funciones clave
- 01Flujos de trabajo duraderos que se reanudan desde su último estado tras fallos o reinicios
- 02Acciones ejecutadas en workers distribuidos, con políticas de reintento y tiempos de espera por llamada
- 03Estructuras de control habituales de Python: bucles, condicionales y asyncio.gather para ejecutar tareas en paralelo
- 04Pausas duraderas que sobreviven a los reinicios, desde segundos hasta días
- 05Programaciones cron y por intervalos sin infraestructura adicional
- 06Aplicación web integrada para inspeccionar instancias de flujos de trabajo y la carga de los nodos
Casos de uso
- Enviar lotes de correos o llamar a APIs de terceros con reintentos y ejecución en paralelo
- Ejecutar trabajos de base de datos que deben completarse de forma fiable a pesar de los despliegues o fallos
- Programar sincronizaciones periódicas de datos sin un broker de tareas independiente
- Coordinar procesos asíncronos de varios pasos en una aplicación Python respaldada por Postgres
Inicio rápido
- 1
Instala el paquete con uv
uv add waymark - 2
Inicia el node conectado a tu base de datos Postgres con la webapp habilitada
export WAYMARK_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/waymark export WAYMARK_HTTP_ENABLED=true uv run waymark-executor
Antes de usarlo
- El README indica que todavía no debe usarse en producción, ya que la especificación cambia rápidamente y no se garantiza la compatibilidad con versiones anteriores antes de la 1.0.0.
- Por ahora, Python es el único lenguaje compatible.
- No es adecuado para trabajos sensibles a la latencia que necesiten procesarse en menos de 100 ms ni para coordinar más de unos 10 000 acciones simultáneas.
Temas
Preguntas frecuentes
- ¿Qué es waymark?
- Biblioteca de Python para flujos de trabajo en segundo plano duraderos y acciones que sobreviven a reinicios y fallos, con Postgres como única infraestructura. Waymark es una biblioteca para crear tareas en segundo plano que siguen ejecutándose aunque se reinicie el servidor, fallen las tareas o los trabajos duren mucho tiempo. Su única dependencia de infraestructura es Postgres, y Python es el primer lenguaje compatible. Se definen acciones como funciones normales de Python asíncrono, que se ejecutan de forma distribuida en nodos worker, y un flujo de trabajo que las coordina mediante estructuras de control habituales, como bucles, condicionales y ramas paralelas.
- ¿waymark es gratuito? ¿Qué licencia tiene?
- waymark es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿waymark sigue mantenido?
- Mantenimiento activo. El último commit de waymark fue el 6 nov 2026.
- ¿Para qué puedo usar waymark?
- Enviar lotes de correos o llamar a APIs de terceros con reintentos y ejecución en paralelo Ejecutar trabajos de base de datos que deben completarse de forma fiable a pesar de los despliegues o fallos Programar sincronizaciones periódicas de datos sin un broker de tareas independiente Coordinar procesos asíncronos de varios pasos en una aplicación Python respaldada por Postgres
- ¿Cómo se instala waymark?
- Instala el paquete con uv: uv add waymark Inicia el node conectado a tu base de datos Postgres con la webapp habilitada: export WAYMARK_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/waymark export WAYMARK_HTTP_ENABLED=true uv run waymark-executor
- ¿Dónde consigo waymark?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/piercefreeman/waymark
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca de Python que añade flujos de trabajo duraderos y colas de tareas a tus programas, con el estado guardado como puntos de control en Postgres.
Biblioteca de Python para programar tareas y gestionar colas, con triggers cron, por intervalo, de calendario y de ejecución única, y almacenes de trabajos persistentes opcionales.
Cola de tareas distribuida para Python que ejecuta trabajos en segundo plano y programa tareas entre workers y brokers de mensajes.
Biblioteca de Go para colas de tareas distribuidas con Redis, con programación, reintentos, colas prioritarias y una interfaz web.
Motor de workflows durables para ejecutar funciones por pasos, tareas en segundo plano y workflows de IA en serverless, servidores o edge, con reintentos y control de flujo.