Databases & System Design•Part 5: Real-Time Architecture, Replication & Scale (51 - 60)
Read-Write Splitting (Primary/Replica):
In Simple Words:
All writes (INSERT, UPDATE) go to Primary. Replicas replicate asynchronously and serve read queries (SELECT) to scale read capacity horizontally.
typescript
// Prisma / TypeORM datasource routing configuration:
const prisma = new PrismaClient({
datasources: {
db: {
url: process.env.DATABASE_PRIMARY_URL, // Writes
},
},
});
// Queries wrapped with read replica client:
const readClient = new PrismaClient({
datasources: { db: { url: process.env.DATABASE_REPLICA_URL } }
});