ลองพอร์ต claw-code ไปเป็น Elixir พร้อมดึงจุดแข็งของ OTP และมัลติโนดมาใช้
(github.com/jidohyun)สวัสดีครับ
ช่วงนี้ผมกำลังทดลองพอร์ต claw-code ของ instructkr / ultraworkers (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
- persistence / recovery แบบเบาด้วย DETS
- การทดสอบ failover / recovery โดยอิงจาก connected node
ตอนนี้ผมรวบรวมผลงานไว้ภายใต้ชื่อ 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 ปี ไม่อยากเห็นหรอก แต่ดันกดเข้ามาดูทั้งที่ไม่รู้อะไรเอง แบบนี้โทษตัวเองเถอะ เฮ้อ
น่าอายจริงๆ ไม่รู้จะว่ายังไง... ถ้านั่นนับเป็นความสามารถ ก็ถือว่าเป็นความสามารถอย่างหนึ่งแล้วกัน...