Skip to content

Instantly share code, notes, and snippets.

@cpursley
Last active December 11, 2024 20:05
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.

@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.

@cassandrastumer
Copy link

@abeisleem
Copy link

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