Distributed systems in computer science have always intrigued me because they operate under the constraints of the physical world. There are no perfect solutions in distributed systems, only trade-offs. In my work with distributed PostgreSQL architectures, I have encountered various approaches to address the limitations of running PostgreSQL on a single machine. These approaches include network-attached block storage, read replicas, DBMS-optimized cloud storage, active-active architectures, transparent sharding, and distributed key-value stores with SQL. Each architecture has its pros and cons, including performance trade-offs and considerations for scalability, durability, and availability. Ultimately, choosing the right distributed PostgreSQL architecture depends on the specific needs of the organization.
https://www.crunchydata.com/blog/an-overview-of-distributed-postgresql-architectures