Cukup Gunakan Postgres di Mana Saja
(amazingcto.com)- Postgres dapat menggantikan banyak teknologi backend (hingga jutaan pengguna)
→ Kafka, RabbitMQ, Mongo, Redis,.. - Untuk cache, gunakan tabel UNLOGGED dan
TEXTdalam format JSON alih-alih Redis- Atur masa kedaluwarsa data dengan stored procedure
- Antrean pesan (Kafka):
SKIP LOCKED - Data warehouse dengan Postgres+TimescaleDB
- Simpan
JSONBsebagai pengganti Mongo, lalu lakukan pencarian dan pengindeksan - Gunakan
pg_cronsebagai daemon CRON untuk hal seperti pengiriman email - Digunakan untuk kueri geospasial
- Gunakan untuk pencarian full-text sebagai pengganti Elastic
- Buat JSON di dalam DB lalu kirim langsung ke API tanpa kode server-side
- Mendukung GraphQL juga lewat adaptor GraphQL
13 komentar
Hmm.. sepertinya intinya adalah bahwa konsep dasarnya sudah cukup dengan
postgres, kecuali jika memang membutuhkan lebih banyak fitur yang didukung oleh masing-masing aplikasi.Karena tiap aplikasi bisa menggunakan lebih banyak fitur daripada alur pengganti yang dibahas di atas.
Menurut saya ini bukan pendapat yang terlalu mengada-ada jika digunakan dengan antarmuka yang dirancang dengan baik. Namun, menurut saya urusan seperti cache/message queue tetap tidak masalah jika diserahkan ke Redis.
Saya juga belakangan ini punya pemikiran yang mirip seperti tulisan di atas. Tentu saja, untuk layanan berskala besar sebaiknya risiko disebar semaksimal mungkin dengan arsitektur yang terdistribusi, tetapi saat sesekali mengerjakan proyek outsourcing skala kecil, menggunakan tipe
jsonbdi Postgres tanpa memakai NoSQL terpisah terasa jauh lebih serbaguna. Pengalaman pemakaiannya seperti memadukan RDB + NoSQL, dan untuk proyek kecil performanya sudah sangat memadai.Karena semua dilakukan dengan satu hal, semua titik risikonya pun berkumpul di satu tempat..!
Beberapa hal memang dulu benar-benar dikerjakan dengan RDB pada masa belum ada produk penggantinya, tetapi untuk hal seperti Redis, Kafka, dan Cron, tampaknya tidak bisa menggantikan keunggulan utama masing-masing. Sepertinya ini hanya ide yang seru untuk dilihat lalu dilewati.
Sepertinya ini pas untuk orang yang suka melakukan semuanya dengan satu hal.
Saya dulu memakai Postgres karena urusan geospasial.
Dibandingkan DB lain, performanya sekitar 10~100 kali lebih cepat. Untuk sisi geo memang sangat unggul.
Tapi seperti yang semua orang tahu, saat datanya makin banyak dan
vacuumberjalan tidak semestinya, Anda akan merasakan neraka..Oh, ada beberapa trik ya.
Namun, untuk kombinasi pertama antara UNLOGGED dan stored procedure, rasanya akan jauh lebih rapi kalau langsung pakai Redis, haha
Beberapa tahun lalu, saat memakai JSONB dan bebannya mulai berat, saya pernah mengerjakannya dengan memilih yang sesuai pola kv lalu memindahkannya ke Redis, dan itu pengalaman yang cukup nyaman.
Pendapat yang menarik.
Judulnya memang agak provokatif, tapi menurut saya topiknya cukup layak dipikirkan jadi saya terjemahkan apa adanya.
Soalnya, saat membuat MVP awal, memasukkan terlalu banyak komponen juga bisa jadi masalah.
Tampaknya ini konsep yang bagus.
Terima kasih.