GeekNews의 또 다른 신규 개발 프로젝트입니다.

Multigres는 공식적으로 자신을 Vitess for Postgres라고 설명합니다. MySQL의 대규모 horizontal scaling 문제를 해결한 Vitess의 아이디어를 PostgreSQL에 가져와 샤딩, connection pooling, replication, high availability 등을 하나의 계층에서 관리하려는 오픈소스 프로젝트입니다. (GitHub)

목표는:

Standard PostgreSQL compatibility를 유지하면서 multi-tenant·HA·globally distributed deployment를 지원

하는 것입니다. 최근 개발에서는 Postgres wire compatibility, LISTEN/NOTIFY와 connection pooling의 공존, HA와 consensus까지 상당히 낮은 계층을 직접 다루고 있습니다. (Multigres)

다만 매우 중요한 제한이 있습니다.

프로젝트 README가 직접 “currently in the early stages of development”라고 명시합니다. 아직 major contribution도 제한적으로 받고 있는 단계라 production DB를 바로 Multigres로 교체할 수준의 성숙도로 보기는 어렵습니다. (GitHub)

왜 볼 만한가

Postgres의 현재 가장 큰 약점 중 하나가 수평 확장을 할 때 운영 복잡도가 크게 증가한다는 점입니다.

일반적으로:

Postgres
+ PgBouncer
+ Patroni
+ Citus/sharding
+ Load balancing
+ Failover logic

처럼 여러 계층을 붙여야 합니다.

Multigres가 성숙하면 이 문제를 Vitess처럼 하나의 control plane으로 묶을 가능성이 있습니다.

실무 시사점

당장 도입보다는 watch list에 넣는 게 적절합니다. 특히 PostgreSQL 기반 SaaS가 단일 DB의 vertical scaling 한계에 접근하고 있다면 1~2년 뒤 architecture 후보군으로 보는 가치가 있습니다.

Multigres 공식 사이트 Multigres GitHub