Lesson 16← back to roadmap
Open the same database as read_only from any number of processes. They take a shared flock; mutations are rejected at the API boundary.
python
replica = elips.PersistentClient("/var/data/elips", access_mode="read_only")
for hit in replica.get_collection("docs").query(query_embeddings=q, n_results=10):
...- One read_write opener via exclusive lock
- Many read_only openers via shared lock
- Read-only collections reject add/delete/checkpoint with StorageError
This is the supported mode for shared-reader analytics and read-fanout serving. Writers run elsewhere; replicas pick up new segments on the next open or rotation.