Anatomy of a policy
Peer buckets
Each peer bucket is configured independently.
Every policy needs at least one synchronous peer.
Modes
sync
The write lands on this peer before the request returns. Counts toward the quorum.
async
The write is acknowledged first and copied to this peer in the background.
cache
Holds copies of what has been read or prefetched, so repeat reads are served locally. The source stays authoritative.
Quorum and required peers
The quorum is the minimum number of synchronous peers with write permission that must acknowledge a PUT for it to succeed. With three such peers, a quorum of2 means a write survives one peer being unavailable; a quorum of 3 means every copy must land. The quorum is the dial between durability and latency, set per OneBucket.
Marking a peer Required adds a hard rule on top: that specific peer must succeed, whatever the quorum says. Use it when one copy has to exist in a particular place, such as a jurisdiction.
What a policy decides, and what it does not
Placement is set per OneBucket, not per object. Every object in a OneBucket follows the same policy; objects are not routed individually by prefix, tag or content. To place data differently, put it in a different OneBucket with its own policy.
Changing a policy while it serves
Policies can be edited at any time and take effect without touching clients: the endpoint, keys and application configuration stay the same. That is what makes these patterns a policy change rather than a project:- Add a provider: add a peer, turn on opportunistic replication, and it fills as data is read.
- Shift writes: clear Write and Delete on one peer, and new objects go only to the others while it still serves reads.
- Retire a backend: deactivate the peer, validate, then delete it.
- Restrict a key: assign a key to a policy with read-only permissions, and its next write is refused, with the attempt visible in events.
Keeping objects readable without OneBucket
With the peer bucket name left as* and encoding off, objects are stored on each backend unchanged: same bucket names, same keys, same bytes. Any S3 client can read them directly from the backend, and you can remove OneBucket from the path at any time. Enabling encoding or a renamed peer bucket trades that property for compression or separation.
Related
Federation
How many backends become one namespace.
Scenarios
Policies applied to migration, replication, placement and caching.