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하게 만든다면 어떻게 접근할지
피드백이나 비판 모두 환영합니다.