50 puntos por xguru 2022-12-13 | 13 comentarios | Compartir por WhatsApp
  • Postgres puede reemplazar muchas tecnologías de backend (hasta para millones de usuarios)
    → Kafka, RabbitMQ, Mongo, Redis,..
  • Para caché, usar TEXT en formato JSON en tablas UNLOGGED en lugar de Redis
    • Establecer un período de expiración para los datos con procedimientos almacenados
  • Cola de mensajes (Kafka): SKIP LOCKED
  • Para data warehouse, Postgres + TimescaleDB
  • En lugar de Mongo, guardar JSONB y hacer búsquedas e indexación
  • Usarlo como demonio CRON para tareas como envío de correos con pg_cron
  • Usarlo para consultas geoespaciales
  • Usarlo para búsqueda de texto completo en lugar de Elastic
  • Generar JSON dentro de la DB y entregarlo directamente a la API sin código del lado del servidor
  • También soporta GraphQL con un adaptador GraphQL

13 comentarios

 
bbulbum 2022-12-15

Mmm... parece que la idea básica es que, si no necesitas más funciones de las que admite cada app, el concepto básico basta con Postgres.
Después de todo, cada app puede usar más funciones que el flujo que están reemplazando arriba.

 
colossus 2022-12-14

No me parece una idea tan descabellada si se define bien la interfaz y se usa correctamente. Aun así, creo que está bien dejar cosas como la caché o la cola de mensajes a cargo de Redis.

 
gninggoon 2022-12-14

Yo también he estado pensando algo parecido últimamente, igual que en el texto de arriba. Claro, para servicios a gran escala conviene distribuir lo más posible para repartir el riesgo, pero cuando hago trabajos externos pequeños, usar el tipo jsonb de Postgres sin meter un NoSQL aparte me ha resultado mucho más útil. La experiencia de uso se siente como combinar RDB + NoSQL y, dentro de proyectos pequeños, el rendimiento ha sido más que suficiente.

 
a9t84j1k5j2j1 2022-12-13

¡Al querer hacer todo con una sola cosa, todos los puntos de riesgo quedan concentrados en un solo lugar..!

 
ehlegeth 2022-12-13

Algunas de estas son cosas que en realidad se hacían con una base de datos relacional cuando no había productos alternativos, pero no parece que cosas como Redis, Kafka o Cron puedan reemplazar sus ventajas principales. Da la impresión de ser una idea para ver por diversión y seguir de largo.

 
ifmkl 2022-12-13

Parece ideal para quienes disfrutan usar una sola cosa para todo.

 
s0400615 2022-12-13

Yo usaba Postgres por temas geoespaciales.
Comparado con otras bases de datos, era entre 10 y 100 veces más rápido... en la parte geo era abrumadoramente superior.

Pero, como todos saben, cuando los datos aumentan mucho y vacuum corre mal, se vive un infierno..

 
kbumsik 2022-12-13

Oh, hay varios trucos.

Pero en el primer caso, la combinación de UNLOGGED y procedimientos almacenados hace pensar que, más bien, usar Redis sería mucho más limpio jaja

 
youknowone 2022-12-13

Fue hace algunos años, pero una vez trabajé usando JSONB y, cuando la carga se volvió alta, elegí algo que encajara con el patrón KV y lo saqué a Redis; fue una experiencia bastante cómoda.

 
sangheon 2022-12-13

Es una opinión interesante.

 
xguru 2022-12-13

Es un título provocador, pero es un tema que vale la pena considerar, así que lo comparto tal cual.
Al desarrollar un MVP inicial, también puede ser un problema introducir demasiados componentes.

 
jujumilk3 2022-12-13

Parece un buen concepto.

 
devo209 2022-12-20

Gracias.