Restate é um runtime para criar aplicações resilientes com execução durável, troca confiável de mensagens e estado durável, mesmo diante de falhas na infraestrutura.
ergo-services/ergo
Framework de modelo de atores para Go, inspirado em Erlang/OTP, para criar sistemas distribuídos supervisionados e transparentes à rede.
- Estrelas
- 4,681
- Forks
- 191
- Issues abertas
- 0
- Último commit
- há 13 dias
O que é?
Ergo é um framework para Go que organiza um programa em atores (processos) isolados, que se comunicam apenas por mensagens. Cada ator processa uma mensagem por vez, então não é necessário usar mutexes para proteger estado compartilhado. Os atores são organizados em árvores de supervisão, que reiniciam os filhos com falha de acordo com estratégias configuráveis. Além disso, um ator pode ser acessado da mesma forma, esteja no nó local ou em outro nó do cluster.
O framework inclui supervisores, pools de workers, roteadores e metaprocessos que encapsulam operações bloqueantes de I/O por TCP, UDP, portas e web, para que elas não interrompam o processamento normal de mensagens dos atores. Os recursos de cluster incluem descoberta de serviços por meio de registradores integrados ou externos, eventos distribuídos de publicação/assinatura, criação remota de processos e interoperabilidade com nós Erlang e Elixir pelo protocolo de distribuição do Erlang. O projeto não tem dependências externas e usa a licença MIT.
O aplicativo complementar Observer oferece uma interface web para inspecionar processos, redes, eventos e logs nos nós em execução, além de disponibilizar um endpoint MCP para que assistentes de IA consultem um cluster. Uma CLI chamada ergo gera a estrutura inicial de projetos para aplicações, atores e tipos de mensagem.
Recursos principais
- 01Atores isolados que processam mensagens sequencialmente, com quatro filas de prioridade por caixa de entrada.
- 02Árvores de supervisão com as estratégias One For One, All For One, Rest For One e Simple One For One.
- 03A mesma API de mensagens para atores locais e remotos, com serialização binária EDF.
- 04Descoberta de serviços por registradores integrados ou externos, como etcd.
- 05Eventos distribuídos de publicação/assinatura e criação remota de processos.
- 06Interoperabilidade com nós Erlang e Elixir pelo protocolo de distribuição do Erlang.
- 07Interface web Observer e rastreamento distribuído compatível com OpenTelemetry.
Casos de uso
- Criar backends em tempo real em que cada conexão de cliente é um ator endereçável.
- Gerenciar grandes quantidades de dispositivos IoT, com um ator por dispositivo.
- Coordenar sistemas de IA multiagente que precisam de isolamento contra falhas e supervisão.
- Executar serviços Go em um cluster heterogêneo junto a nós Erlang ou Elixir.
Início rápido
- 1
Importe o framework e inicie um nó no seu código Go, como mostrado no exemplo do README
- 2
Crie um actor no nó e envie mensagens a ele
Tópicos
Perguntas frequentes
- O que é ergo?
- Framework de modelo de atores para Go, inspirado em Erlang/OTP, para criar sistemas distribuídos supervisionados e transparentes à rede. Ergo é um framework para Go que organiza um programa em atores (processos) isolados, que se comunicam apenas por mensagens. Cada ator processa uma mensagem por vez, então não é necessário usar mutexes para proteger estado compartilhado. Os atores são organizados em árvores de supervisão, que reiniciam os filhos com falha de acordo com estratégias configuráveis. Além disso, um ator pode ser acessado da mesma forma, esteja no nó local ou em outro nó do cluster.
- ergo é gratuito? Qual é a licença?
- ergo é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- ergo ainda é mantido?
- Manutenção ativa. O último commit de ergo foi em 9 de out. de 2026.
- Para que posso usar ergo?
- Criar backends em tempo real em que cada conexão de cliente é um ator endereçável. Gerenciar grandes quantidades de dispositivos IoT, com um ator por dispositivo. Coordenar sistemas de IA multiagente que precisam de isolamento contra falhas e supervisão. Executar serviços Go em um cluster heterogêneo junto a nós Erlang ou Elixir.
- Como instalar ergo?
- Importe o framework e inicie um nó no seu código Go, como mostrado no exemplo do README Crie um actor no nó e envie mensagens a ele
- Onde consigo ergo?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ergo-services/ergo
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Rivet é um orquestrador de código aberto que agenda Actors duráveis e com estado para agentes, workflows e apps em tempo real, como alternativa ao agendamento baseado em pods.
Um mecanismo de orquestração para tarefas em segundo plano, agentes de IA e workflows duráveis, com SDKs para Python, TypeScript, Go e Ruby e Postgres como camada de durabilidade.
Implementação Java do Apache Dubbo, um framework de RPC e microsserviços para comunicação, descoberta e gerenciamento de tráfego entre serviços.
Engine de execução durável e open source para orquestrar microsserviços, agentes de IA e grafos de workflows adaptativos, com workers em várias linguagens.
Temporal é uma plataforma de execução durável cujo servidor executa workflows de aplicações e tenta novamente, de forma automática, as etapas que falham.