50 puan yazan xguru 2022-12-13 | 13 yorum | WhatsApp'ta paylaş
  • Postgres, birçok backend teknolojisinin yerini alabilir (milyonlarca kullanıcıya kadar)
    → Kafka, RabbitMQ, Mongo, Redis,..
  • Cache için Redis yerine, JSON biçiminde TEXT kullanan UNLOGGED tablolar kullanın
    • Stored procedure ile veriler için son kullanma süresi ayarlayın
  • Mesaj kuyruğu (Kafka): SKIP LOCKED
  • Veri ambarı için Postgres + TimescaleDB
  • Mongo yerine JSONB depolayın; arama ve indeksleme yapın
  • E-posta gönderimi gibi işler için pg_cron ile bir CRON daemon’u olarak kullanın
  • Coğrafi sorgular için kullanın
  • Elastic yerine tam metin aramada kullanın
  • Veritabanı içinde JSON üretip, sunucu tarafı kod olmadan doğrudan API’ye iletin
  • GraphQL adaptörüyle GraphQL desteği de sağlayın

13 yorum

 
bbulbum 2022-12-15

Hmm... eğer her uygulamanın desteklediği daha fazla özelliğe ihtiyacınız yoksa, temel konsept açısından postgres'in yeterli olduğu söyleniyor gibi görünüyor.
Çünkü her uygulama, yukarıda onun yerine kullanılan akıştan daha fazla özelliği kullanabiliyor.

 
colossus 2022-12-14

Arayüz düzgün kurgulanıp kullanılırsa bunun o kadar da saçma bir fikir olmadığını düşünüyorum. Yine de cache/message queue gibi işleri Redis’e bırakmakta sakınca görmüyorum.

 
gninggoon 2022-12-14

Ben de son zamanlarda yukarıdaki yazıya benzer şeyler düşünüyorum. Elbette büyük ölçekli servislerde riski mümkün olduğunca dağıtarak yaymak daha iyi olur, ancak zaman zaman küçük ölçekli dış kaynak projelerinde ayrı bir NoSQL kullanmak yerine Postgres'in jsonb tipinden yararlanmanın çok daha kullanışlı olduğunu gördüm. Hem RDB + NoSQL'i birlikte kullanıyormuşsunuz gibi bir kullanım sunuyordu hem de küçük projelerde performansı fazlasıyla yeterliydi.

 
a9t84j1k5j2j1 2022-12-13

Her şeyi tek başına yapınca, tüm risk noktaları da tek bir yerde toplanıyor..!

 
ehlegeth 2022-12-13

Bazıları gerçekten de yerini alacak ürünlerin olmadığı dönemlerde RDB ile yapılan işlerdi, ancak Redis, Kafka, Cron gibi şeylerin temel avantajlarının ikame edilebildiği pek görünmüyor. Sanırım eğlencesine bakıp geçilecek türden bir fikir.

 
ifmkl 2022-12-13

Her şeyi tek bir araçla halletmeyi sevenler için biçilmiş kaftan gibi duruyor

 
s0400615 2022-12-13

Ben Geospatial yüzünden postgres kullanmıştım.
Diğer veritabanlarına kıyasla yaklaşık 10 ila 100 kat daha hızlıydı.. geo tarafında ezici bir üstünlüğü vardı.

Ama herkesin bildiği gibi veri arttıkça vacuum yanlış çalışırsa cehennemi yaşarsınız..

 
kbumsik 2022-12-13

Vay, epey numara varmış.

Ama ilk UNLOGGED ile stored procedure kombinasyonu için, doğrusu Redis kullanmak çok daha temiz olur gibi geliyor haha

 
youknowone 2022-12-13

Birkaç yıl önceydi ama JSONB kullanırken yük artınca KV pattern’ine uygun olanı seçip Redis’e ayırarak çalışmıştım; oldukça rahat bir deneyimdi.

 
sangheon 2022-12-13

İlginç bir görüş.

 
xguru 2022-12-13

Kışkırtıcı bir başlık ama yine de üzerinde düşünmeye değer bir konu olduğu için olduğu gibi aktardım.
Sonuçta erken aşama bir MVP geliştirirken çok fazla bileşeni devreye almak da ayrı bir sorun olabiliyor.

 
jujumilk3 2022-12-13

İyi bir konsept gibi görünüyor.

 
devo209 2022-12-20

Teşekkür ederim.