Postgres LISTEN/NOTIFYは実際にスケールする

मूल शीर्षक: Postgres LISTEN/NOTIFY actually scales

यह क्यों महत्वपूर्ण है

Postgres को real-time streaming और AI agent workflows के लिए scalable बनाने की यह तकनीक डेवलपर्स के लिए महत्वपूर्ण है।

DBOS के Peter Kraft ने 24 जुलाई 2026 को बताया कि Postgres LISTEN/NOTIFY को सही तरीके से optimize करने पर single Postgres server पर 60,000 writes प्रति सेकंड और millisecond-स्तर की latency हासिल की जा सकती है। पहले यह सुविधा scalable नहीं मानी जाती थी।

DBOS के इंजीनियर Peter Kraft ने एक विस्तृत blog post में बताया कि Postgres की LISTEN/NOTIFY सुविधा को लेकर एक पुरानी धारणा गलत साबित हुई है। एक प्रसिद्ध blog post के कारण यह माना जाता था कि LISTEN/NOTIFY scale नहीं होती, लेकिन DBOS ने इसे optimize करके single Postgres server पर 60,000 writes प्रति सेकंड की throughput हासिल की।

LISTEN/NOTIFY का उपयोग low-latency durable notifications, streams और pub/sub के लिए किया जाता है। इसका मूल उपयोग यह है कि readers, writers से notification का इंतज़ार करते हैं और नया stream chunk आते ही तुरंत जाग जाते हैं — polling की ज़रूरत नहीं पड़ती।

DBOS की शुरुआती implementation में streams table पर एक trigger था जो हर नए chunk पर NOTIFY भेजता था। यह सही था और latency कम थी, लेकिन बड़े database पर भी केवल 2,900 writes प्रति सेकंड तक ही पहुँच पाता था — बिना किसी visible resource (CPU, memory, IOPS) के bottleneck के।

इसका मूल कारण था Postgres का वह global exclusive lock जो NOTIFY call करने वाले transaction को commit करते समय लिया जाता है। यह lock unintuitive और undocumented है। DBOS ने इस lock के व्यवहार को समझकर optimization की, जिससे throughput में लगभग 20 गुना वृद्धि हुई और latency millisecond-स्तर पर बनी रही।

DBOS Transact एक open source durable execution library है जो TypeScript, Python, Go और Java में उपलब्ध है।

स्रोत

dbos.dev — मूल लेख पढ़ें →