Porté claw-code a Elixir aprovechando las fortalezas de OTP y multinodo.
(github.com/jidohyun)Hola.
Recientemente estoy haciendo un experimento para portar a Elixir claw-code de instructkr / ultraworkers (https://github.com/ultraworkers/claw-code).
Más que moverlo simplemente 1:1,
quería ver cómo se vería este tipo de proyecto con carácter de agent / control-plane si se hiciera de una manera más propia de Elixir.
En particular, intenté aprovechar activamente fortalezas de Elixir / BEAM como las siguientes:
- supervisión con OTP
- procesos de larga duración
- runtime pensado primero para daemons
- enrutamiento multinodo / BEAM distribuido
- control plane orientado a la recuperación
Por eso, más que ir en la dirección de portar solo los comandos,
le di más peso a aspectos como estos:
- procesos supervisados de sesión / workflow
- enrutamiento consciente del daemon
- seguimiento de ownership del clúster
- persistence / recovery livianos basados en DETS
- pruebas de failover / recovery basadas en nodos conectados
Por ahora dejé el resultado organizado con el nombre Beamwarden:
https://github.com/jidohyun/beamwarden
Más que un producto terminado,
se parece más a un proyecto para experimentar con la idea de:
“¿Qué pasaría si este tipo de arquitectura de agent runtime/control-plane se reconstruyera sobre OTP y una base multinodo?”
Si a alguien le interesa, me gustaría especialmente recibir feedback sobre puntos como estos:
- si la estructura de boundary / supervisión de OTP se siente propia de Elixir
- si la dirección de multinodo routing / failover va bien
- si hay partes innecesariamente complejas
- cómo abordarían hacer este tipo de sistema de forma Elixir-native
Son bienvenidos tanto el feedback como las críticas.
3 comentarios
Como estudiante, parece que está haciendo un "experimento de portarlo a Elixir". Cuantos más intentos se puedan hacer, mejor.
En una época en la que solo abundan javascript/node o python, resulta refrescante probar con Elixir.
Recuerdo que hace mucho tiempo conocí Erlang por primera vez y me dejó muy impresionado.
La curiosidad intelectual está bien, pero da vergüenza hacerse el desentendido con la propiedad intelectual. Como dice Kian84: te doy exactamente 2 años. No quería verlo, pero fue mi error entrar sin saber y terminar viéndolo. Uf.
Qué vergüenza, de verdad... aunque si eso cuenta como habilidad, supongo que también es una habilidad...