Skip to content

huseyinbabal/pg-wal-conferencing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PG Meet — Multi-Participant Video Calls Through PostgreSQL WAL

A multi-participant video meeting app where every audio/video chunk flows through PostgreSQL's Write-Ahead Log. No media server. No WebRTC. WebSocket + Go + Postgres WAL logical replication — running on a local Kubernetes cluster with CloudNativePG.

Prerequisites

Running the Demo

The setup script handles everything — kind cluster, CloudNativePG, monitoring, build, and deploy:

cd k8s
chmod +x setup.sh
./setup.sh

This runs 10 steps:

Step What it does
1 Create kind cluster (pg-meet, 3 nodes)
2 Install kube-prometheus-stack (Prometheus + Grafana)
3 Install CloudNativePG operator
4 Create namespace + secrets
5 Deploy PostgreSQL cluster (primary + replica, WAL logical)
6 Deploy postgres-exporter
7 Provision CNPG Grafana dashboard
8 Build + load Docker image into kind
9 Deploy Go server
10 Port-forward (app + Grafana)

Once complete:

Open multiple browser tabs to simulate a meeting:

http://localhost:8080?name=Alice&room=meeting-1
http://localhost:8080?name=Bob&room=meeting-1
http://localhost:8080?name=Carol&room=meeting-1

Each tab auto-connects its camera and joins the room. All participants see each other in a responsive grid.

To test late join, open a fourth tab after the others are streaming:

http://localhost:8080?name=Dave&room=meeting-1

Dave gets cached init segments from memory and starts seeing all active streams immediately — zero database queries.

Chrome/Edge recommended. Firefox and Safari have limited MediaRecorder + MSE support.

Cleanup

kind delete cluster --name pg-meet

License

Demo project — use as you like.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors