Show GN: claw-code를 Elixir로 포팅하면서 OTP, 멀티노드 강점을 살려봤습니다.
(github.com/jidohyun)안녕하세요.
최근에 instructkr / ultraworkers의 claw-code (https://github.com/ultraworkers/claw-code) 를 Elixir로 포팅해보는 실험을 하고 있습니다.
그냥 1:1로 옮기는 것보다는,
이런 종류의 agent / control-plane 성격의 프로젝트를 Elixir스럽게 만들면 어떤 모습이 될지 보고 싶었습니다.
특히 아래 같은 Elixir / BEAM의 강점을 적극적으로 살려보려고 했습니다:
- OTP supervision
- long-running process
- daemon-first runtime
- multi-node / distributed BEAM routing
- recovery-oriented control plane
그래서 단순히 명령어만 포팅하는 방향보다는,
다음 같은 쪽에 더 무게를 두었습니다:
- supervised session / workflow process
- daemon-aware routing
- cluster ownership tracking
- DETS 기반의 가벼운 persistence / recovery
- connected node 기준의 failover / recovery 테스트
결과물은 현재 Beamwarden이라는 이름으로 정리해두었습니다:
https://github.com/jidohyun/beamwarden
완성된 제품이라기보다는,
“이런 agent runtime/control-plane 계열 구조를 OTP와 멀티노드 기반으로 다시 만들어보면 어떨까?”
를 실험해보는 프로젝트에 가깝습니다.
혹시 관심 있으신 분들이 계시면 특히 이런 부분에 대한 피드백이 궁금합니다:
- OTP boundary / supervision 구조가 Elixir답게 보이는지
- multi-node routing / failover 방향이 괜찮은지
- 불필요하게 복잡한 부분은 없는지
- 이런 종류의 시스템을 Elixir-native하게 만든다면 어떻게 접근할지
피드백이나 비판 모두 환영합니다.
학생으로써 "Elixir로 포팅해보는 실험"을 하는것 같습니다. 여러 시도를 할수록 좋은거지요.
javascript/node, 또는 python만 넘쳐나는 시대에 Elixir로 해본다는게 신선합니다.
오래전 Erlang을 처음 접하고 감명 깊었던 기억이 납니다.
지적호기심은 좋지만 지적재산권은 모르쇠하는게 부끄럽네여. 기안84가 말합니다. 너 딱 2년 본다. 보기 싫은데 모르고 들어와서 본 게 잘못이다. 휴