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 に作るなら、どうアプローチするか
フィードバックも批判も、どちらも歓迎します。
3件のコメント
学生として「Elixirに移植してみる実験」をしているようですね。いろいろ試してみるほど良いことです。
javascript/node や python ばかりあふれている時代に、Elixirでやってみるのは新鮮です。 ずっと昔に Erlang に初めて触れて、深い感銘を受けた記憶があります。
知的好奇心はいいけれど、知的財産権は知らんぷりするのが恥ずかしいですね。キアン84が言います。お前はきっちり2年だ。見たくないのに、知らずに入って見てしまったのが間違いだ。ふう
本当に恥ずかしいですね……それも才能だと言うなら才能ですね……