Restate es un runtime para crear aplicaciones resilientes con ejecución durable, mensajería confiable y estado durable que resisten fallas de infraestructura.
ergo-services/ergo
Framework de modelo de actores para Go, inspirado en Erlang/OTP, para crear sistemas distribuidos supervisados y transparentes a la red.
- Estrellas
- 4,681
- Forks
- 191
- Issues abiertos
- 0
- Último commit
- hace 13 días
¿Qué es?
Ergo es un framework para Go que organiza los programas en actores aislados (procesos) que se comunican únicamente mediante mensajes. Cada actor procesa sus mensajes de uno en uno, así que los desarrolladores no necesitan usar mutex para proteger el estado compartido. Los actores se organizan en árboles de supervisión que reinician a los hijos que fallan según estrategias configurables, y se puede acceder a un actor de la misma forma tanto si está en el nodo local como si está en otro nodo del clúster.
El framework incluye supervisores, grupos de workers, routers y metaprocesos que encapsulan operaciones de I/O bloqueantes de TCP, UDP, puertos y web para que no bloqueen el procesamiento habitual de mensajes de los actores. Las funciones de clustering incluyen descubrimiento de servicios mediante registradores integrados o externos, eventos distribuidos de publicación/suscripción, creación remota de procesos e interoperabilidad con nodos de Erlang y Elixir mediante el protocolo de distribución de Erlang. El proyecto no tiene dependencias externas y está publicado bajo la licencia MIT.
La aplicación complementaria Observer ofrece una interfaz web para inspeccionar procesos, redes, eventos y logs en los nodos en ejecución, y expone un endpoint MCP para que los asistentes de IA puedan consultar un clúster. Una CLI llamada ergo genera el esqueleto de proyectos para aplicaciones, actores y tipos de mensajes.
Funciones clave
- 01Actores aislados que procesan mensajes secuencialmente, con cuatro colas de prioridad por buzón.
- 02Árboles de supervisión con las estrategias One For One, All For One, Rest For One y Simple One For One.
- 03La misma API de mensajería para actores locales y remotos, con serialización binaria EDF.
- 04Descubrimiento de servicios mediante registradores integrados o externos, como etcd.
- 05Eventos distribuidos de publicación/suscripción y creación remota de procesos.
- 06Interoperabilidad con nodos de Erlang y Elixir mediante el protocolo de distribución de Erlang.
- 07Interfaz web Observer y trazas distribuidas compatibles con OpenTelemetry.
Casos de uso
- Crear backends en tiempo real donde cada conexión de cliente sea un actor direccionable.
- Gestionar grandes cantidades de dispositivos IoT, con un actor por dispositivo.
- Coordinar sistemas de IA multiagente que necesiten aislamiento ante fallos y supervisión.
- Ejecutar servicios de Go en un clúster heterogéneo junto con nodos de Erlang o Elixir.
Inicio rápido
- 1
Importa el framework e inicia un nodo en tu código Go, como se muestra en el ejemplo del README
- 2
Crea un actor en el nodo y envíale mensajes
Temas
Preguntas frecuentes
- ¿Qué es ergo?
- Framework de modelo de actores para Go, inspirado en Erlang/OTP, para crear sistemas distribuidos supervisados y transparentes a la red. Ergo es un framework para Go que organiza los programas en actores aislados (procesos) que se comunican únicamente mediante mensajes. Cada actor procesa sus mensajes de uno en uno, así que los desarrolladores no necesitan usar mutex para proteger el estado compartido. Los actores se organizan en árboles de supervisión que reinician a los hijos que fallan según estrategias configurables, y se puede acceder a un actor de la misma forma tanto si está en el nodo local como si está en otro nodo del clúster.
- ¿ergo es gratuito? ¿Qué licencia tiene?
- ergo es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ergo sigue mantenido?
- Mantenimiento activo. El último commit de ergo fue el 9 oct 2026.
- ¿Para qué puedo usar ergo?
- Crear backends en tiempo real donde cada conexión de cliente sea un actor direccionable. Gestionar grandes cantidades de dispositivos IoT, con un actor por dispositivo. Coordinar sistemas de IA multiagente que necesiten aislamiento ante fallos y supervisión. Ejecutar servicios de Go en un clúster heterogéneo junto con nodos de Erlang o Elixir.
- ¿Cómo se instala ergo?
- Importa el framework e inicia un nodo en tu código Go, como se muestra en el ejemplo del README Crea un actor en el nodo y envíale mensajes
- ¿Dónde consigo ergo?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/ergo-services/ergo
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Rivet es un orquestador de código abierto que programa Actors duraderos y con estado para agentes, workflows y aplicaciones en tiempo real, como alternativa a la programación basada en pods.
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.
Implementación en Java de Apache Dubbo, un framework de RPC y microservicios para crear comunicación, descubrimiento y gestión del tráfico entre servicios.
Motor de ejecución durable de código abierto para orquestar microservicios, agentes de IA y grafos de workflow adaptativos, con workers en varios lenguajes.
Temporal es una plataforma de ejecución durable cuyo servidor ejecuta Workflows de aplicaciones y reintenta automáticamente los pasos que fallan.