Over the past few months I've been building pgconverge, an experimental open-source framework for operating multi-master PostgreSQL clusters.
The project started as a learning exercise to better understand distributed databases rather than as an attempt to replace PostgreSQL's existing replication model. My goal was to explore what it would take for multiple PostgreSQL nodes to accept writes independently while eventually converging without relying on a designated primary database. Over time, the experiment evolved into a working open-source framework.
Some of the areas I explored include:
full-mesh replication topology conflict resolution using Last-Write-Wins Hybrid Logical Clocks for ordering concurrent writes bootstrapping new nodes into an existing cluster declarative cluster configuration
Github Link: https://github.com/sobowalebukola/pgconverge
Along the way I documented the design decisions in a seven-part engineering series:
Why Multi-Master? The Problem with Single-Writer Databases
https://blog.stackademic.com/why-multi-master-the-problem-wi...
Inside pgconverge: Navigating the N × (N − 1) Complexity of Full-Mesh Replication
https://blog.stackademic.com/inside-pgconverge-navigating-th...
Identity Crisis: How pgconverge Uses UUIDs, Node Names, and Distributed Primary Keys
https://blog.stackademic.com/identity-crisis-how-pgconverge-...
Last-Write-Wins: The Simplest Conflict Resolution and Its Limits in pgconverge
https://blog.stackademic.com/last-write-wins-the-simplest-co...
pgconverge with Hybrid Logical Clocks: When Wall Clocks Are Not Enough
https://blog.stackademic.com/pgconverge-with-hybrid-logical-...
Bootstrapping New Nodes in pgconverge: pg_basebackup vs COPY Data
https://blog.stackademic.com/bootstrapping-new-nodes-in-pgco...
Operating Multi-Master PostgreSQL Clusters with pgconverge
https://blog.stackademic.com/operating-multi-master-postgres...