Implementing Database Replication

1. Understanding Replication Types

TypeDescription
Physical (streaming WAL)Byte-for-byte block changes
LogicalRow-level events; can filter/transform
Statement-basedReplays SQL (legacy MySQL)
Row-basedReplays row images (modern MySQL default)
Multi-masterWrites accepted on multiple nodes
SnapshotPeriodic full copy (Oracle materialized refresh)

2. Configuring Replication Topology

TopologyUse
Primary + ReplicasRead scaling, HA
CascadingReplica feeds replicas (reduce primary load)
Multi-regionDR + local read latency
Active-ActiveMulti-master with conflict resolution
Quorum clusterRaft/Paxos (CockroachDB, Spanner)

3. Implementing Synchronous Replication

PropertyDetail
Ack requiredReplica confirms before commit
Postgres settingsynchronous_commit = on, synchronous_standby_names
Latency costRound-trip per commit
UseZero RPO, financial workloads
RiskLost replica blocks writes — use quorum (ANY 2 OF n)

4. Implementing Asynchronous Replication

PropertyDetail
Ack immediatePrimary commits without waiting
RPO > 0Lose recent writes on failover
ThroughputHigher than sync
UseRead scaling, geo-distribution

5. Handling Replication Lag

DetectHow
Postgrespg_stat_replication, pg_last_wal_replay_lsn()
MySQLSHOW REPLICA STATUS — Seconds_Behind_Source
MitigationBigger replica, faster network, batch writes
Lag-aware readsSkip replica if lag > threshold

6. Managing Failover and Switchover

TermDetail
FailoverUnplanned: primary dies, replica promoted
SwitchoverPlanned: graceful role swap
ToolsPatroni, repmgr, Orchestrator, RDS Multi-AZ
Fencing (STONITH)Prevent split-brain by killing old primary
Connection reroutingVirtual IP, DNS, proxy

7. Implementing Read Replicas

UseDetail
Scale readsDistribute SELECT load
AnalyticsHeavy queries off primary
BackupsRun pg_basebackup on replica
Geo-local readsReplica in user's region
RoutingApp router, ProxySQL, Aurora reader endpoint

8. Resolving Replication Conflicts

StrategyDetail
Last-write-wins (LWW)Timestamp tiebreak; risk of lost writes
CRDTsMathematically merge concurrent changes
Application-definedCustom merge logic
Avoid conflictsPartition writes by region/shard
Vector clocksDetect concurrent updates

9. Monitoring Replication Health

MetricWatch
Replication lag (sec/bytes)Alert > SLO
WAL retainedAvoid running out of replication slots
Active replicasSynchronous quorum maintained
Replication errorsApply failures, conflicts
Failover historyTrack frequency + reason

10. Testing Disaster Recovery Scenarios

DrillTest
Primary lossFailover time, data loss
Region lossCross-region promotion
Network partitionSplit-brain prevention
CorruptionRestore from backup
Document RTO/RPO measuredVs targets