Object storage strong consistency

DesignHard40 minAmazon style

Your task

Design the metadata/consistency layer of an object store that must offer strong read-after-write and strongly-consistent list operations across multiple availability zones. Constraints: a PUT must be immediately visible to any subsequent GET or LIST from any client, overwrites must not expose a stale or torn version, the bucket can hold a billion keys (so LIST must be paginated and efficient), and the bytes themselves are already durably stored elsewhere. Focus on the metadata layer.

It covers

  • Metadata consistency
  • Read after write
  • List consistency