Distribute read operations across different database replicas with the ZenStack ORM.
- ZenStack (version >=
3.3.0) - Node.js (version >=
20.0.0)
npm install @visualbravo/zenstack-replicas
pnpm add @visualbravo/zenstack-replicas
bun add @visualbravo/zenstack-replicasimport{schema}from'./zenstack/schema'import{ZenStackClient}from'@zenstackhq/orm'import{defineReplicasPlugin}from'@visualbravo/zenstack-replicas'constreplica1=newZenStackClient(schema,{
...
})constreplica2=newZenStackClient(schema,{
...
})constprimary=newZenStackClient(schema,{
...
})constclient=primary.$use(defineReplicasPlugin({replicas: [replica1,replica2],}),)// replica1awaitclient.user.findMany()// replica2awaitclient.user.findMany()// replica1awaitclient.user.findMany()// primary (write operation)awaitclient.user.create({data: {email: 'test@test.com',},})Note
Replicas are queried in a round-robin pattern.
MIT