- Postgres queue अच्छा है, लेकिन मुख्यधारा में न होने का कारण यह आम धारणा है कि दूसरी queue तकनीकें ज़्यादा scalability देती हैं
- webapp.io जैसी कंपनियों ने scalability से अधिक operational simplicity, maintainability, और familiarity को महत्व देते हुए Postgres queue चुना
- Postgres queue तकनीक के घटक
- नए काम की सूचना देना और सुनना (pub/sub) तथा mutual exclusion (row locks)
- ये दोनों Postgres 9.5 में उपलब्ध हुए, जो 2016 में रिलीज़ हुआ था
- उद्योग में मौजूद इस आम सोच का खंडन कि Postgres का इस तरह उपयोग करना 'hacky' है, और यह तर्क कि Postgres कोई घटिया queue तकनीक नहीं है
- लंबे समय तक चलने वाले कामों को संभालने के लिए Redis, Apache Kafka, RabbitMQ, Amazon SQS जैसे queue tools चुने जाते रहे हैं
- तकनीकी उद्योग में 'scale' के प्रति जुनून की आलोचना, और simplicity, maintainability, तथा developer cognitive load को कम करने की कीमत पर लिए जाने वाले फैसलों की भी आलोचना
- लेखक का सुझाव है कि तकनीकी निर्णय लेते समय उन तकनीकों पर भी विचार करना चाहिए जिन्हें आप अभी इस्तेमाल कर रहे हैं और अच्छी तरह समझते हैं
- पहले से उपयोग में और अच्छी तरह समझी जा चुकी 'boring technology' चुनने की सिफारिश
- 'building an escape hatch' की अवधारणा का परिचय, जिसका मतलब है कि job processing के लिए application code queue से स्वतंत्र होना चाहिए
- लेखक निष्कर्ष निकालते हैं कि लोगों को Postgres queue तकनीक पर विचार करना चाहिए और 'boring technology' को default choice बनाना चाहिए
1 टिप्पणियां
Hacker News राय
SELECT FOR UPDATE SKIP LOCKEDइस्तेमाल करना एक सरल तरीका है, जो सभी ORM/Query DSL framework में काम करता है.LISTEN/NOTIFYका उपयोग करके PostgreSQL को pub/sub bus की तरह इस्तेमाल करने की मुख्य कमी यह है कि LISTEN एक session feature है, इसलिए यह statement-level connection pooling के साथ compatible नहीं है.