19 คะแนน โดย xguru 2025-11-27 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • "เฟรมเวิร์กเวิร์กโฟลว์แบบ durable และ resumable ที่เขียนด้วย TypeScript"
  • มี workflow engine สำหรับ เชื่อมต่อบริการและ API ที่หลากหลาย เพื่อทำให้งานที่มีลำดับซับซ้อนเป็นอัตโนมัติ
  • เป็น แพลตฟอร์มโอเพนซอร์สแบบโมดูลาร์ ที่พัฒนาขึ้นเพื่อแก้ปัญหา workflow automation และ integration
  • แม้เซิร์ฟเวอร์จะล่มหรือมีการ deploy ก็สามารถบันทึกสถานะไว้ใน Postgres และกลับมาทำงานต่อได้อย่างแม่นยำตั้งแต่สเต็ปล่าสุด
  • แต่ละ step.run({ name }, fn) จะ ถูกรันเพียงครั้งเดียวและผลลัพธ์ถูก memoize ดังนั้นเมื่อรีสตาร์ตหลังเกิด crash จะไม่รัน side effect ซ้ำ เช่น การตัดบัตรหรือการส่งอีเมล แต่จะนำผลลัพธ์ที่แคชไว้กลับมาใช้
  • ไม่ต้องมีเซิร์ฟเวอร์เฉพาะแยกต่างหาก โดยใช้โครงสร้างที่ worker process (ow.newWorker({ concurrency })) คอย polling pending run จาก DB แล้วนำมารัน จึงสามารถเปิดหลาย worker เพื่อรองรับ high availability และ scale-out ได้ และ long sleep อย่าง step.sleep("id", "1h") ก็ไม่กินช่องของ worker
  • ออกแบบมาให้จัดการ การนิยามแบบ type-safe, การจัดการเวอร์ชัน, การดูผลลัพธ์ และการยกเลิก ได้ทั้งหมดในระดับโค้ด ผ่าน workflow input/output generics, ฟิลด์เวอร์ชัน (version: "v2"), run().result(), handle.cancel() เป็นต้น
  • รองรับการขยายและการปรับแต่งให้เข้ากับระบบภายนอกผ่าน plugin architecture
  • รองรับการเชื่อมต่อกับ SaaS และเครื่องมือพัฒนาหลัก เช่น OpenAI, Slack, GitHub, Notion
  • ขณะนี้โฟกัสที่ PostgreSQL backend และความสามารถรันไทม์พื้นฐาน (concurrency, retry, parallel step, sleep, versioning, cancel)
    • หลังจากนี้มี CLI, dashboard, idempotency key, rollback/compensation functions, signals, OpenTelemetry, Redis/SQLite backend, Go/Python SDK อยู่ในโรดแมป

2 ความคิดเห็น

 
hiyama 2025-11-27

เมื่อไม่นานมานี้มีโพสต์นี้ขึ้นมาอยู่เหมือนกัน GitHub - earendil-works/absurd: An experiment in durability https://share.google/PCjaLh3j46ayECI9b ... ดูเหมือนจะเป็นโปรเจ็กต์แนวคอนเซปต์เดียวกัน แต่หายไปไหนแล้วนะ...

 
click 2025-11-27

ให้ความรู้สึกคล้ายกับ spring batch เลยครับ