Ao portar o claw-code para Elixir, tentei aproveitar os pontos fortes de OTP e de múltiplos nós.
(github.com/jidohyun)Olá.
Recentemente, estou fazendo um experimento de portar o claw-code do instructkr / ultraworkers (https://github.com/ultraworkers/claw-code) para Elixir.
Em vez de simplesmente fazer uma transposição 1:1,
quis ver como ficaria esse tipo de projeto com características de agent / control plane se fosse tornado mais "Elixir-like".
Em especial, tentei aproveitar ativamente os pontos fortes do Elixir / BEAM abaixo:
- supervisão com OTP
- processo de longa duração
- runtime orientado a daemon desde o início
- roteamento multi-node / distributed BEAM
- control plane orientado à recuperação
Por isso, em vez de seguir na direção de portar apenas os comandos,
dei mais peso aos pontos abaixo:
- sessão / processo de workflow supervisionados
- roteamento com consciência de daemon
- rastreamento de ownership no cluster
- persistence / recovery leves com base em DETS
- testes de failover / recovery com base nos nós conectados
O resultado foi organizado atualmente com o nome Beamwarden:
https://github.com/jidohyun/beamwarden
Mais do que um produto finalizado,
é mais próximo de um projeto experimental para testar a ideia de:
"como seria recriar esse tipo de estrutura de agent runtime/control plane com base em OTP e múltiplos nós?"
Se houver pessoas interessadas, tenho curiosidade especialmente sobre feedback nestes pontos:
- se a estrutura de boundary / supervisão do OTP parece natural em Elixir
- se a direção de multi-node routing / failover parece boa
- se não há partes desnecessariamente complexas
- como vocês abordariam a criação desse tipo de sistema de forma Elixir-native
Feedback ou críticas, ambos são bem-vindos.
3 comentários
Como estudante, parece que está fazendo um “experimento de portar para Elixir”. Quanto mais tentativas, melhor.
Numa época em que só se vê javascript/node ou python por toda parte, fazer isso em Elixir é algo refrescante. Lembro até hoje da forte impressão que tive quando conheci Erlang pela primeira vez, há muito tempo.
A curiosidade intelectual é ótima, mas é vergonhoso fazer vista grossa para os direitos de propriedade intelectual. Como diz o Kian84: dou dois anos no máximo pra você. Eu nem queria ver isso, mas entrei sem saber e acabei vendo. Aff.
Que vergonha... embora, se isso for uma habilidade, então é uma habilidade mesmo...