Skip to content

Instantly share code, notes, and snippets.

@cpursley
Last active November 21, 2024 11:47
Show Gist options
  • Save cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb to your computer and use it in GitHub Desktop.
Save cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb to your computer and use it in GitHub Desktop.
Postgres is Enough

PostgreSQL is Enough

Background and Cron Jobs

Message Queues

GIS/Mapping

Audit Logs

Access Control & Authorization

Search

Time Series

Column Oriented

NoSQL

Graph Data

Foreign Data

Custom Types

Alternative Query Langauges

HTTP

APIs

Events, Replication, CDC,

Caching

Unit Tests

HTML and Applications

Graphics / Visual

Migrations

Performance Tuning

Scaling

Dashboards / UIs

Data Visualization

Package Management

Language Servers

In-Browser & WASM

Miscellaneous

What's missing? Please share in the comments.

@cpursley
Copy link
Author

cpursley commented Feb 6, 2024

@ralyodio I don't know surrealdb - can you sum up its capabilities?

@dr-jts
Copy link

dr-jts commented Feb 6, 2024

For rendering SVG look at pgSVG.

@9mm
Copy link

9mm commented Feb 6, 2024

@seancolsen
Copy link

Within "Dashboards / UIs", it would be great to mention Mathesar — a web based interface specifically tailored for PostgreSQL.

@pashagolub
Copy link

Advanced Scheduler (cron) pg_timetable

@jaimi-taos-wellhealth
Copy link

@kulminaator
Copy link

How about a multimaster cluster where i can upgrade postgres version in rolling node by node upgrades and not resort to ancient methods? How about having a cluster of postgresql machines where i can add/remove nodes, add nodes with new versions and upgrade the whole cluster without downtime? How come mongodb and elastic can do that. Cockroachdb and Yugabyte can do that. But with the classic postgresql I'm back in stone age. Yes some 3rd party clustering methods exist there but they are all s..t on a stick kind of solutions, not proper ones. Not the ones where i could say "hey shard that table into 16 shards for me and have parity over 3 nodes, let me command the shards off a node that i want to maintain".

Don't get me wrong, i have used postgresql for 18 years by now. I love a big bunch of what i can do with it. But managing a high-avialability setup just makes devops cry.

@jherazob
Copy link

jherazob commented Feb 7, 2024

Something missing that at least right now i feel should NOT be in Postgres is secrets management

@cpursley
Copy link
Author

cpursley commented Feb 7, 2024

@jherazob what are you thoughts on this approach?: Supabase Vault

@cpursley
Copy link
Author

cpursley commented Feb 7, 2024

Cockroachdb and Yugabyte can do that

@kulminaator I think you answered your own question; these are pg wire compatible. There's also Citus.

@jherazob
Copy link

jherazob commented Feb 8, 2024

@jherazob what are you thoughts on this approach?: Supabase Vault

I'm only vaguely aware of the existence of Supabase and have never really evaluated it before, so will have to give it a good look before forming an opinion, gut feeling still tells me that secrets on the DB is probably not good but i have to analyze their approach to give it a fair assessment

@arjunlol
Copy link

arjunlol commented Feb 9, 2024

@cpursley something that can be added to Audit Logs: https://github.com/BemiHQ/bemi

@StephanSchmidt
Copy link

StephanSchmidt commented Feb 9, 2024

Great! That this idea is getting traction :-)

@kenfar
Copy link

kenfar commented Feb 12, 2024

This is missing data warehousing, reporting and analytics.

@cpursley
Copy link
Author

@kenfar Any suggestions for those?

@LrWm3
Copy link

LrWm3 commented Feb 12, 2024

@cpursley @kenfar its deprecated but technically tobs can be salveged for this purpose: https://github.com/timescale/tobs

@kenfar
Copy link

kenfar commented Feb 12, 2024

@cpursley - no product is needed, just the right features:

  • partitioning
  • query parallelism
  • dimensional model (rather than say one-big-table)
  • pre-computed aggregate tables for common queries
  • appropriate hardware (sufficient memory, cpu, maybe very fast IO)

This is missing an MPP configuration (data distributed across multiple servers working together on queries), and columnar structures. But, those aren't absolutely essential.

@mjf
Copy link

mjf commented Feb 13, 2024

My Postgres collection, perhaps you'd like to use some of the items as well. Here is my list of Postgres blogs worth visiting regularly.

@cpursley
Copy link
Author

cpursley commented Feb 13, 2024

These are great @mjf, thanks! I added a link under miscellaneous.

@brianheineman
Copy link

brianheineman commented Feb 14, 2024

I've recently put together the Rust crate postgresql-embedded that will allow you to embed PostgreSQL into an executable for use in environments where downloading the installation may not be an option.

@WesleyYue
Copy link

@mahrous-amer
Copy link

I have been using https://github.com/sqitchers/sqitch for a while on production to handle migrations with Postgres it works perfectly.

@docwhat
Copy link

docwhat commented May 21, 2024

https://graphjin.com for purely GraphQL API goodness?

@philippemnoel
Copy link

For analytics:

pg_lakehouse (by ParadeDB): https://github.com/paradedb/paradedb/tree/dev/pg_lakehouse -- Fast analytics from Postgres over local Parquet files, data lakes (S3, GCS, etc.), and lakehouses (Delta Lake, Iceberg)

pg_analytics (by ParadeDB): https://github.com/paradedb/paradedb/tree/dev/pg_analytics -- Columnar storage in Postgres for fast analytics inside Postgres tables

@AdnanSoftic
Copy link

AdnanSoftic commented Jul 11, 2024

@Mdkar
Copy link

Mdkar commented Jul 16, 2024

Not sure if it’s any good, but PostgresML claims to do RAG infra (for use with LLMs and chat bots).

@secp256k1-sha256
Copy link

Amazing list, very helpful.

Scaling section can be improved further.

Connection Pools and Load balancers: (similar to Supavisor added by you)
PgCat
PgBouncer
PgPool-II

Sharding:
Citus can be under scaling as well due to sharding capability.

I am not sure below Postgres derivatives can be part of the list as they are not open source but they are part of Postgres compatible scaling solutions.
Distributed Postgres flavors:
Yugabyte
Multi-master Postgres derivatives for scaling :
Spock
EDB Postgres-distributed
AWS PGACTIVE

@CC-Hsu
Copy link

CC-Hsu commented Jul 25, 2024

I'd like to know how postgres can join to the blockchain world since this is a less discussed topic.

@abeisleem
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment