Postgres forks and derivatives
The Server section of awesome-postgres — five entries, and the smallest functional section in a catalog of several hundred. That number is the argument postgresql-extensions makes, so this page enumerates the exceptions and asks what each of them needed that an extension could not give.
| Entry | Catalogued as | What it actually is |
|---|---|---|
| yugabytedb | Distributed SQL using a PostgreSQL fork | Paged from primary sources. Forks the storage, replication and transaction layers; keeps a modified Postgres for the SQL layer |
| ferretdb | Open-source MongoDB alternative on PostgreSQL | Paged from primary sources. Not a fork at all — a wire-protocol proxy over stock Postgres plus the DocumentDB extension |
| AgensGraph | Powerful graph database based on PostgreSQL | Fork (T3, unverified) — note the catalog also lists AGE, graph support as an extension, in the Extensions section |
| Apache Cloudberry | MPP PostgreSQL fork, positioned as a Greenplum alternative | Fork (T3, unverified). Analytical/MPP — centre of gravity is ../analytical-databases-wiki's |
| Postgres-XL | Scalable open-source PostgreSQL database cluster | Fork (T3, unverified) |
What forking buys, from the two entries that were read
yugabytedb gives the clearest answer available. Its licence file describes src/postgres/ as a
"Modified PostgreSQL fork for YSQL compatibility" while src/yb/ holds the storage engine,
consensus, tablets and servers. So the thing it needed was to replace Postgres's replication and
durability layer with a Raft-quorum one — and that is not a seam Postgres exposes. An extension can
add a table access method, a distributed router (citus), a queue (pgmq), even a whole storage
engine (OrioleDB, in the Extensions section). It cannot swap the WAL-and-streaming-replication model
for per-shard consensus.
ferretdb gives the opposite answer and shows the catalog's own sectioning is imprecise: it sits in the Server section while being Postgres plus an extension plus a proxy. So of five "alternative servers," at most four are forks, and one is evidence for the extension thesis rather than against it.
AgensGraph versus AGE is the sharpest natural experiment in the catalog and neither has been read here: the same capability — a graph database on Postgres, with Cypher — appears once as a fork and once as an extension, from overlapping lineages. Whichever won is a direct measurement of how wide the extension seam really is, and it is the highest-value unread comparison this ingest found.
The placement rule this page sets
A Postgres derivative is paged here when it is transactional and its centre of gravity is OLTP
(yugabytedb), and cross-linked to ../analytical-databases-wiki when it is columnar/MPP
(Apache Cloudberry, which is a Greenplum-lineage analytical engine and should be paged there if it
is ever read). Same rule the spoke applied to citus' columnar tier.
Related
yugabytedb · ferretdb · postgresql-extensions · citus · postgresql · analytical-databases · awesome-postgres · operational-databases