Saltar al contenido principal

Read Replicas

Configure read replicas for database scaling.

Overviewโ€‹

Read replicas offload read queries from the primary database, improving performance for read-heavy workloads.

PostgreSQL Streaming Replicationโ€‹

Primary Configurationโ€‹

# postgresql.conf
wal_level = replica
max_wal_senders = 5
wal_keep_size = '1GB'

Replica Configurationโ€‹

# Create replica from primary
pg_basebackup -h primary-host -D /var/lib/postgresql/data -U replication -P

# recovery.conf (or standby.signal in PG12+)
primary_conninfo = 'host=primary-host port=5432 user=replication password=secret'

TypeORM Configurationโ€‹

// ormconfig.ts
{
type: 'postgres',
replication: {
master: {
host: process.env.DB_HOST,
port: 5432,
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
},
slaves: [
{
host: process.env.DB_REPLICA_HOST,
port: 5432,
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
},
],
},
}

Query Routingโ€‹

TypeORM automatically routes:

  • Writes (INSERT, UPDATE, DELETE) โ†’ Primary
  • Reads (SELECT) โ†’ Replicas (round-robin)