- Queue Postgres itu bagus, tetapi bukan arus utama karena ada anggapan umum bahwa teknologi queue lain menawarkan skalabilitas yang lebih besar
- Perusahaan seperti webapp.io memilih queue Postgres karena lebih mementingkan kesederhanaan operasional, kemudahan pemeliharaan, dan keakraban dibanding skalabilitas
- Komponen penyusun teknologi queue Postgres
- Memberi tahu dan mendengarkan pekerjaan baru (pub/sub) serta saling-eksklusif (
row locks)
- Keduanya tersedia sejak Postgres 9.5 yang dirilis pada 2016
- Penulis membantah anggapan umum di industri bahwa menggunakan Postgres dengan cara ini bersifat "hacky", dan berargumen bahwa Postgres bukanlah teknologi queue kelas dua
- Redis, Apache Kafka, RabbitMQ, Amazon SQS, dan lainnya telah lama dipilih sebagai alat queue untuk menangani pekerjaan yang berjalan lama
- Penulis mengkritik obsesi industri teknologi terhadap "skala" dan pengorbanan atas kesederhanaan, kemudahan pemeliharaan, serta berkurangnya beban kognitif pengembang
- Saran penulis: saat membuat keputusan teknis, pertimbangkan teknologi yang saat ini sudah digunakan dan benar-benar dipahami dengan baik
- Penulis menganjurkan memilih "teknologi yang membosankan" yang sudah dipakai dan dipahami dengan baik
- Diperkenalkan konsep "membangun jalan keluar", yang berarti kode aplikasi untuk memproses pekerjaan seharusnya tidak bergantung pada queue
- Kesimpulannya, penulis mendorong orang lain untuk mempertimbangkan teknologi queue Postgres dan menjadikan "teknologi yang membosankan" sebagai pilihan default
1 komentar
Opini Hacker News
SELECT FOR UPDATE SKIP LOCKEDadalah pendekatan sederhana yang bekerja di semua framework ORM/Query DSL.LISTEN/NOTIFYadalahLISTENmerupakan fitur berbasis sesi, sehingga tidak kompatibel dengan connection pooling tingkat pernyataan.SKIP LOCKEDuntuk VACUUM, delayed job, retry, pembaruan status, serta indeks untuk menerapkan pola mahal seperti "setidaknya sekali".