- คิวของ Postgres นั้นดี แต่เหตุผลที่ยังไม่เป็นกระแสหลักคือมีความเชื่อกันโดยทั่วไปว่าเทคโนโลยีคิวแบบอื่นให้ความสามารถในการขยายระบบได้มากกว่า
- บริษัทอย่าง webapp.io เลือกใช้คิวของ Postgres เพราะให้ความสำคัญกับความเรียบง่ายในการปฏิบัติการ การบำรุงรักษา และความคุ้นเคย มากกว่าความสามารถในการขยายระบบ
- องค์ประกอบของเทคโนโลยีคิวของ Postgres
- การแจ้งและรับฟังงานใหม่ (pub/sub) และการกันการเข้าถึงพร้อมกัน (row locks)
- ทั้งสองอย่างนี้มีให้ใช้งานตั้งแต่ Postgres 9.5 ที่ออกในปี 2016
- ผู้เขียนโต้แย้งความเชื่อทั่วไปในอุตสาหกรรมที่ว่าการใช้ Postgres ในลักษณะนี้เป็นการ "แฮ็ก" และยืนยันว่า Postgres ไม่ใช่เทคโนโลยีคิวที่ด้อยคุณค่า
- ในฐานะเครื่องมือคิวสำหรับจัดการงานที่ใช้เวลานาน มีการเลือกใช้ Redis, Apache Kafka, RabbitMQ และ Amazon SQS กันมาโดยตลอด
- วิจารณ์ความหมกมุ่นของอุตสาหกรรมเทคโนโลยีกับเรื่อง "สเกล" และการยอมแลกความเรียบง่าย ความสะดวกในการบำรุงรักษา และการลดภาระทางความคิดของนักพัฒนา
- ผู้เขียนเสนอว่าเมื่อต้องตัดสินใจด้านเทคโนโลยี ควรพิจารณาเทคโนโลยีที่ใช้อยู่ในปัจจุบันและเข้าใจมันเป็นอย่างดี
- แนะนำให้เลือก "เทคโนโลยีที่แสนน่าเบื่อ" ซึ่งใช้อยู่แล้วและเข้าใจดี
- แนะนำแนวคิด "สร้างทางหนีไว้ล่วงหน้า" ซึ่งหมายความว่าโค้ดแอปพลิเคชันสำหรับประมวลผลงานควรไม่ผูกติดกับคิว
- ผู้เขียนสรุปด้วยการสนับสนุนให้ผู้อื่นพิจารณาเทคโนโลยีคิวของ Postgres และใช้ "เทคโนโลยีที่แสนน่าเบื่อ" เป็นตัวเลือกตั้งต้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
SELECT FOR UPDATE SKIP LOCKEDเป็นแนวทางที่เรียบง่ายซึ่งใช้งานได้กับทุกเฟรมเวิร์ก ORM/Query DSLSKIP LOCKEDสำหรับ VACUUM, งานแบบหน่วงเวลา, การลองใหม่, การอัปเดตสถานะ และดัชนีสำหรับการทำแพตเทิร์นที่มีต้นทุนสูงอย่างเช่น "อย่างน้อยหนึ่งครั้ง"