ชุมชนนักพัฒนากำลังพูดคุยกันอย่างกระตือรือร้นเกี่ยวกับประสบการณ์ของพวกเขากับระบบ workflow ที่ใช้ Postgres โดยเฉพาะ DBOS ซึ่งเป็นทางเลือกแทนแพลตฟอร์มการจัดการที่ซับซ้อนกว่าอย่าง Temporal การสนทนาเหล่านี้เผยให้เห็นข้อมูลเชิงลึกเชิงปฏิบัติเกี่ยวกับความท้าทายในการนำไปใช้งาน กลยุทธ์การย้ายระบบ และการแลกเปลี่ยนระหว่างแนวทางการจัดการ workflow ที่แตกต่างกัน
เครื่องมือ Workflow อื่นๆ ที่ใช้ Postgres:
- DBOS - ไลบรารี่โอเพนซอร์สสำหรับแอปพลิเคชันที่มีอยู่แล้ว
- pgflow.dev - สร้างบน pgmq ด้วยตรรกะที่เน้นฐานข้อมูลเป็นหลัก
- Graphile Worker - ตัวประมวลผลงานเบื้องหลังที่กำลังถูกแทนที่ด้วยโซลูชันใหม่ๆ
- Azure Durable Functions - โมเดลที่คล้ายกันโดยใช้บริการจัดเก็บข้อมูลของ Azure
เรื่องราวความสำเร็จในการย้ายระบบและความง่ายในการนำไปใช้
นักพัฒนารายงานการเปลี่ยนไปใช้ระบบ workflow ที่ใช้ Postgres ที่ราบรื่นอย่างน่าประหลาดใจ นักพัฒนาคนหนึ่งแชร์ประสบการณ์การย้ายจาก Graphile Worker ไปยัง DBOS โดยทำการย้ายระบบเสร็จสิ้นในเวลาเพียง 30 นาที เวลาในการนำไปใช้งานที่รวดเร็วนี้ตรงกันข้ามอย่างสิ้นเชิงกับระบบที่ซับซ้อนกว่าที่ต้องการการเปลี่ยนแปลงทางสถาปัตยกรรมอย่างมีนัยสำคัญ
จุดดึงดูดอยู่ที่แนวทางการนำไปใช้แบบค่อยเป็นค่อยไป ไม่เหมือนกับระบบที่ต้องการการปรับปรุงโครงสร้างพื้นฐานทั้งหมด โซลูชันที่ใช้ Postgres สามารถเสียบเข้ากับ codebase ที่มีอยู่ได้โดยมีการรบกวนน้อยที่สุด สิ่งนี้ได้พิสูจน์แล้วว่ามีคุณค่าเป็นพิเศษสำหรับทีมที่จัดการ AI agents และงานเบื้องหลังที่ต้องการความสามารถ checkpoint เพื่อลดต้นทุนและปรับปรุงความน่าเชื่อถือ
จุดเปรียบเทียบระบบ Workflow:
- เวลาในการติดตั้ง: DBOS (30 นาที) เทียบกับ Temporal (ต้องการการออกแบบสถาปัตยกรรมใหม่)
- โครงสร้างพื้นฐาน: ใช้ Postgres เป็นฐาน (ฐานข้อมูลที่มีอยู่) เทียบกับ External orchestrators (บริการเพิ่มเติม)
- ความยากง่ายในการเรียนรู้: การสืบค้น SQL เทียบกับ Specialized workflow APIs
- กลยุทธ์การย้ายข้อมูล: การปรับใช้แบบค่อยเป็นค่อยไป เทียบกับ การปรับปรุงระบบทั้งหมด
![]() |
---|
แผนผังขั้นตอนที่แสดงการปฏิสัมพันธ์ระหว่างผู้ปฏิบัติงานและขั้นตอนการทำงาน ซึ่งเป็นตัวแทนของกระบวนการย้ายข้อมูลอย่างรวดเร็วไปสู่ระบบที่ใช้ Postgres เป็นฐาน |
ข้อได้เปรียบทางเทคนิคที่ดึงดูดความสนใจของนักพัฒนา
การอภิปรายของชุมชนเน้นประโยชน์ทางเทคนิคหลายประการที่ทำให้ Postgres น่าสนใจสำหรับการจัดการ workflow กลไกการล็อกของฐานข้อมูล โดยเฉพาะคำสั่ง FOR UPDATE SKIP LOCKED
ช่วยให้สามารถประมวลผลคิวแบบ scalable ได้โดยไม่มีปัญหาการแย่งชิงที่เกิดขึ้นกับการนำไปใช้งานแบบง่าย ๆ
นักพัฒนาชื่นชมความสามารถในการสังเกตการณ์ที่มีมาในตัวซึ่งมาพร้อมกับการจัดเก็บสถานะ workflow ในฐานข้อมูลเชิงสัมพันธ์ คิวรี SQL สามารถดึงข้อมูลเมตาของ workflow เพื่อการตรวจสอบและการแก้ไขข้อบกพร่องได้อย่างง่ายดาย ภาษาคิวรีที่คุ้นเคยช่วยขจัดเส้นโค้งการเรียนรู้ที่เกี่ยวข้องกับระบบ workflow เฉพาะทาง
เมื่อเร็ว ๆ นี้ย้ายงานเบื้องหลังบางส่วนจาก graphile worker ไปยัง DBOS แนะนำจริง ๆ เพราะความเรียบง่าย ใช้เวลาแค่ครึ่งชั่วโมง
คุณสมบัติหลักของ Postgres สำหรับ Workflows:
FOR UPDATE SKIP LOCKED
- ช่วยให้สามารถประมวลผลคิวแบบพร้อมกันได้โดยไม่เกิดการแย่งชิงทรัพยากร- โมเดลข้อมูลเชิงสัมพันธ์พร้อม secondary indexes - รองรับการค้นหาข้อมูล metadata ของ workflow อย่างมีประสิทธิภาพ
- ACID transactions - ให้การรับประกันการดำเนินงานแบบ exactly-once สำหรับการทำงานกับฐานข้อมูล
- SQL observability ในตัว - ช่วยให้สามารถติดตามและแก้ไขปัญหาสถานะของ workflow ได้อย่างง่ายดาย
![]() |
---|
ตัวอย่างคำสั่ง SQL ที่แสดงการใช้งาน FOR UPDATE SKIP LOCKED clause เพื่อเน้นข้อได้เปรียบทางเทคนิคของ Postgres สำหรับการจัดการ workflow |
การเปรียบเทียบทางเลือกและการแลกเปลี่ยน
ชุมชนกำลังเปรียบเทียบโซลูชัน workflow ที่แตกต่างกันอย่างกระตือรือร้น โดยชั่งน้ำหนักปัจจัยต่าง ๆ เช่น ความซับซ้อน ข้อกำหนดโครงสร้างพื้นฐาน และความพยายามในการย้ายระบบ แม้ว่านักพัฒนาบางคนจะยอมรับว่าแพลตฟอร์มที่มีชื่อเสียงอย่าง Temporal เสนอความสามารถในการสังเกตการณ์และอินเทอร์เฟซผู้ใช้ที่เหนือกว่า แต่มักจะต้องการการเปลี่ยนแปลงทางสถาปัตยกรรมที่สำคัญกว่า
การพิจารณาเรื่อง latency ยังมีอิทธิพลต่อการตัดสินใจด้วย กรณีการใช้งานบางอย่างได้ประโยชน์จาก overhead ที่ลดลงของระบบที่ใช้ Postgres เมื่อเทียบกับ orchestrator ภายนอก อย่างไรก็ตาม นักพัฒนาสังเกตว่าการเลือกมักจะขึ้นอยู่กับข้อกำหนดเฉพาะและโครงสร้างพื้นฐานที่มีอยู่
ระบบนิเวศที่เกิดขึ้นใหม่และความเป็นไปได้ในการรวมระบบ
เธรดการอภิปรายเผยให้เห็นความสนใจในการรวมระบบ workflow ที่ใช้ Postgres กับเครื่องมืออื่น ๆ นักพัฒนากำลังสำรวจความเป็นไปได้ในการรวมระบบกับเฟรมเวิร์กการจัดการข้อมูลอย่าง Dagster โดยเห็นศักยภาพสำหรับฟังก์ชันการทำงานที่เสริมกันซึ่งจัดการกับแง่มุมที่แตกต่างกันของไปป์ไลน์การประมวลผลข้อมูลที่ซับซ้อน
ชุมชนยังค้นพบทางเลือกที่มีน้ำหนักเบาและสร้างเครื่องมือเพิ่มเติมรอบ ๆ Postgres workflows นักพัฒนาบางคนกำลังสร้างภาษาเฉพาะโดเมนและอแด็ปเตอร์เพื่อทำให้ระบบเหล่านี้ใช้งานได้ง่ายยิ่งขึ้นในสภาพแวดล้อมการเขียนโปรแกรมที่พวกเขาต้องการ
การอภิปรายที่กำลังดำเนินอยู่บ่งชี้ว่าระบบ workflow ที่ใช้ Postgres กำลังได้รับความนิยมในฐานะจุดกึ่งกลางระหว่างโปรเซสเซอร์งานเบื้องหลังแบบง่าย ๆ และแพลตฟอร์มการจัดการที่ซับซ้อน โดยเสนอจุดที่เหมาะสมของฟังก์ชันการทำงานและความเรียบง่ายสำหรับกรณีการใช้งานจำนวนมาก
อ้างอิง: Why You Should Build Durable Workflows With Postgres