#​523 — September 27, 2023

Web Version

Together with  EDB

Postgres Weekly

Choose Postgres' Queue Technology — If Postgres is a great pub/sub and job server on its own, why does using it as one get called ‘hacky’ and why do most popular background job libraries use Redis? Adriano encourages us to think about the tradeoffs and to consider when ‘boring technology’ like Postgres provides precisely what your use case requires.

Adriano Caloiaro

🗣 Adriano's post kicked off an extensive Hacker News discussion where a lot of folks shared stories and opinions about scalability, the potential downsides of LISTEN/NOTIFY, the benefits of transactions for queues, why people dislike RabbitMQ, and more.

Updates to JSON Functionality in Postgres 16 — A quick, practical look at a few new features including IS JSON OBJECT, JSON_ARRAY(), JSON_ARRAYAGG(), JSON_OBJECT() and JSON_OBJECTAGG()

Christopher Winslett

An Open Source Alternative to PostgreSQL in the Cloud. Start for Free with $300 in Credits — Innovate faster with fully managed Postgres now available with high availability and distributed capabilities – with access to top-tier Postgres experts whenever you need them.

EDB BigAnimal sponsor

📊 Slides: The Major Features of Postgres 16 — Esteemed Postgres expert Bruce Momjian has released an easily scannable slidedeck covering the most significant improvements and features that landed in Postgres 16.

Bruce Momjian

Timescale Vector: How Timescale Enhanced pgvector for Its Managed Postgres Cloud — Best known for their work on TimescaleDB bringing time series data functionality to Postgres, the Timescale folks have turned their hand to vectors. Timescale Vector, only available on Timescale's platform for now, enhances pgvector with a DiskANN inspired indexing approach.

Timescale Team

🔗 LLM framework LangChain has already announced support for Timescale Vector with a post that goes into more depth about the use cases.


🎲  Rolling the Dice with Postgres' Random Functions — Examples of generating random numbers, picking random rows, working with normal distributions (by means of Postgres 16’s random_normal function), and just how random (or not) Postgres’s ‘random’ values really are.

Paul Ramsey

The Evolution of Logical Replication — A comprehensive summary of the progression in Postgres’s support for logical replication from the introduction of logical decoding in Postgres 9.4 nine years ago through to the latest additions in Postgres 16. Amit also briefly covers a few features to be expected in Postgres 17+

Amit Kapila

Setting Per-User Server Variables — Postgres can be configured using a myriad of parameters, many of which can be changed at runtime, and some of which are for superusers only. Postgres 15 added the ability to use GRANT to let non-superusers change superuser-restricted server variables.

Bruce Momjian

\watch's Postgres 16 Improvement — You can now specify how many times you want it to iterate before stopping.

Luca Ferrari

Getting Postgres Logs in a GitHub Action
Brandur Leach

Monitoring Performance for Postgres with Citus
Hans-Jürgen Schönig

All the Ways to Capture Changes in Postgres
Anthony Accomazzo (Sequin)

Postgres 16: The Exciting and the Unnoticed
Samay Sharma (Tembo)

Code and Tools

Instant.dev: A New Postgres-Focused ORM for JavaScriptInstant is a newly released ORM spun out of the Autocode platform that aims to provide a more Ruby on Rails/Active Record style experience, setting it apart from most other players in the increasingly rich JavaScript ORM ecosystem.


How We Made PostgreSQL a Better Vector Database for AI Applications

Timescale sponsor

Citus 12.1 Released with Postgres 16 Support — Microsoft’s distributed Postgres extension takes another gentle step forward with the addition of Postgres 16 support. Release notes.

Citus Data

How to Try Out OrioleDBOrioleDB is an alternative storage engine for Postgres that’s currently in beta. Mark shares his notes on how he got it running.

Mark Callaghan