Cola de trabajos distribuida y tolerante a fallos
- Hatchet permite diseñar cargas de trabajo duraderas que reemplazan colas o sistemas pub/sub existentes difíciles de administrar, recuperándose de fallas y resolviendo problemas como concurrencia, equidad y limitación de velocidad.
- En lugar de administrar tu propia cola de trabajos o sistema pub/sub, puedes usar Hatchet para distribuir funciones entre una serie de workers con una configuración o infraestructura mínimas.
Ventajas de Hatchet
- Programación de latencia ultrabaja y alto rendimiento
- Hatchet está construido sobre una cola de baja latencia con un tiempo promedio de inicio de
25ms, ofreciendo un equilibrio ideal entre capacidad de interacción en tiempo real y la confiabilidad necesaria para tareas críticas.
- Concurrencia, equidad y limitación de velocidad
- Implementa estrategias como FIFO, LIFO, Round Robin y Priority Queues con estrategias integradas de Hatchet, evitando problemas comunes de escalado con una configuración mínima.
- Resiliencia por diseño
- Con políticas de reintento personalizadas y manejo de errores integrado, Hatchet garantiza que los trabajos puedan recuperarse rápidamente de fallas temporales.
Mayor visibilidad y control
- Observabilidad
- Todas las ejecuciones son completamente buscables, lo que permite identificar problemas rápidamente.
- Ejecución duradera (práctica)
- Puedes reproducir eventos y reiniciar manualmente ejecuciones desde pasos específicos del flujo de trabajo.
- Cron
- Permite programar ejecuciones de funciones de forma repetitiva.
- Programación de una sola vez
- Permite programar la ejecución de funciones para una hora y fecha específicas.
- Protección contra picos
- Mitiga aumentos repentinos de tráfico y ejecuta solo lo que el sistema puede manejar.
- Streaming incremental
- Puedes suscribirte a actualizaciones según el progreso de los workers en segundo plano.
Casos de uso de ejemplo
- Equidad para IA generativa
- Puedes usar Hatchet para distribuir solicitudes de manera justa entre workers y evitar que usuarios muy activos saturen el sistema.
- Procesamiento por lotes para indexación de documentos
- Hatchet puede manejar procesamiento masivo por lotes de documentos, imágenes y otros datos, y reanudar el trabajo desde la mitad en caso de fallo.
- Orquestación de flujos de trabajo para sistemas multimodales
- Hatchet puede coordinar entradas y salidas multimodales, y manejar ejecuciones completas estilo DAG.
- Exactitud para procesamiento basado en eventos
- Puede reaccionar a eventos externos o internos del sistema y reproducir eventos automáticamente.
Inicio rápido
- Hatchet ofrece SDKs de código abierto para Python, Typescript y Go.
- Para comenzar, puedes consultar la documentación de Hatchet o revisar el repositorio de inicio rápido.
Repositorios de SDK
- Hatchet ofrece por defecto un SDK en Go.
- También está disponible un SDK de Typescript.
- Si surge algún problema relacionado con los SDK, puedes enviar un issue en el repositorio correspondiente.
¿Existe una versión administrada en la nube de Hatchet?
- Sí, durante el período beta están ofreciendo una versión en la nube a algunas empresas que ayudan a construir y dar forma al producto.
¿Existe una versión self-hosted de Hatchet?
- Sí, en la documentación puedes encontrar instrucciones para contenedores Docker de código abierto para self-hosting.
¿Cómo se compara con las alternativas? (Celery, BullMQ)
- ¿Por qué crear otra cola administrada?
- Querían especialmente obtener los beneficios del encolado transaccional completo, en particular para ejecuciones estilo DAG, y creen firmemente que Postgres puede reemplazar la mayoría de los casos de uso de colas.
- Muchas colas están basadas en Redis y, si no se tiene cuidado, pueden producirse pérdidas de datos por OOM, pero al usar PG estos problemas pueden evitarse.
Problemas
- Puedes reportar bugs encontrados mediante GitHub Issues.
- Como el proyecto está en una etapa inicial, es recomendable contactarlos primero en Discord antes de hacer solicitudes de funciones complejas.
Si quieres contribuir
- Consulta la documentación de contribución y avisa en el canal #contributing de Discord en qué te gustaría trabajar para ayudar a definir la dirección del proyecto y facilitar la colaboración.
Opinión de GN⁺
- Hatchet parece ser una solución que reduce la complejidad de administrar colas de trabajos en sistemas distribuidos y ofrece alta disponibilidad y tolerancia a fallos, especialmente útil para procesamiento de datos a gran escala y servicios en tiempo real.
- Frente a otros sistemas de colas usados actualmente en el mercado, la estabilidad y escalabilidad que obtiene al usar Postgres es una ventaja destacable.
- Al adoptar Hatchet, conviene considerar la compatibilidad con la infraestructura existente, la migración de datos y la capacidad técnica del equipo.
- Las funciones avanzadas de visibilidad y control que ofrece Hatchet pueden facilitar el monitoreo del rendimiento del sistema y la resolución de problemas, reduciendo la carga de trabajo de desarrolladores y equipos de operaciones.
- Como Hatchet aún está en etapa beta, se necesita una validación suficiente en términos de estabilidad y funcionalidad, así como pruebas adecuadas antes de aplicarlo a sistemas a gran escala.
1 comentarios
Opiniones en Hacker News