---
id: "object-store"
type: "kind"
category: "data"
url: "https://localhost:3000/catalogue/kinds/object-store"
---

# Object store

Blob storage addressed by key.

| | |
|---|---|
| Category | Data |
| Properties | 10 |
| Components | 33 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `checksumOnWrite` (advanced) | boolean | — | no | false |
| `durabilityNines` (advanced) | integer | — | no | — |
| `encryptionAtRest` | boolean | — | no | false |
| `managed` | boolean | — | no | false |
| `objectLock` | boolean | — | no | false |
| `replication` | enum | `none`, `primary-secondary`, `quorum`, `erasure-coded` | no | "none" |
| `strongReadAfterWrite` (advanced) | boolean | — | no | false |
| `tier` | enum | `hot`, `warm`, `cold` | no | "hot" |
| `versioning` | boolean | — | no | false |
| `zones` | integer | — | no | — |

## Rules for this kind · 1

### Object store in fewer than three zones with a durability target `object-store-single-zone-with-durability-target` (error)

- Page: https://localhost:3000/catalogue/rules/object-store-single-zone-with-durability-target.md
- Why: Eleven nines of durability assumes redundancy spread over at least three failure domains. An object store confined to fewer zones, or declaring none, cannot reach the target the design states.
- Applies to: every node of kind object-store
- Message: Object store '{{node.id}}' spans fewer than 3 zones (or declares none) while the design targets more than 10 nines of durability.

It fires when:

- all of these hold:
  - the design requirement `durability.annualNines` is a number greater than 10
  - any of these hold:
    - the node's `zones` has no value
    - the node's `zones` is a number less than 3

## Components · 33

### vendor-neutral

- [Generic object store](https://localhost:3000/catalogue/components/object-store.md) `object-store` — the kind itself

### alibabacloud

- [Object Storage Service](https://localhost:3000/catalogue/components/alibaba-oss.md) `alibaba-oss` — 5 defaults

### aws

- [AWS HealthImaging](https://localhost:3000/catalogue/components/aws-healthimaging.md) `aws-healthimaging` — 4 defaults
- [AWS HealthOmics](https://localhost:3000/catalogue/components/aws-healthomics.md) `aws-healthomics` — 5 defaults
- [Amazon S3 Express One Zone](https://localhost:3000/catalogue/components/aws-s3-express-one-zone.md) `aws-s3-express-one-zone` — 9 defaults
- [Amazon S3 Glacier](https://localhost:3000/catalogue/components/aws-s3-glacier.md) `aws-s3-glacier` — 10 defaults
- [Amazon S3 Tables](https://localhost:3000/catalogue/components/aws-s3-tables.md) `aws-s3-tables` — 9 defaults
- [Amazon Security Lake](https://localhost:3000/catalogue/components/aws-security-lake.md) `aws-security-lake` — 10 defaults
- [Amazon S3](https://localhost:3000/catalogue/components/s3.md) `s3` — 8 defaults

### azure

- [Azure Blob Storage](https://localhost:3000/catalogue/components/azure-blob-storage.md) `azure-blob-storage` — 7 defaults
- [Azure Data Lake Storage](https://localhost:3000/catalogue/components/azure-data-lake-storage.md) `azure-data-lake-storage` — 6 defaults
- [Microsoft Planetary Computer Pro](https://localhost:3000/catalogue/components/azure-planetary-computer.md) `azure-planetary-computer` — 1 defaults

### cloudflare

- [Cache Reserve](https://localhost:3000/catalogue/components/cloudflare-cache-reserve.md) `cloudflare-cache-reserve` — 5 defaults
- [Cloudflare Images](https://localhost:3000/catalogue/components/cloudflare-images.md) `cloudflare-images` — 2 defaults
- [Cloudflare R2](https://localhost:3000/catalogue/components/cloudflare-r2.md) `cloudflare-r2` — 6 defaults

### default

- [Backblaze B2 Cloud Storage](https://localhost:3000/catalogue/components/backblaze-b2.md) `backblaze-b2` — 5 defaults
- [Blob store](https://localhost:3000/catalogue/components/blob-store.md) `blob-store` — 1 defaults
- [Ceph RADOS Gateway](https://localhost:3000/catalogue/components/ceph-rgw.md) `ceph-rgw` — 4 defaults
- [Cloudinary](https://localhost:3000/catalogue/components/cloudinary.md) `cloudinary` — 4 defaults
- [Garage](https://localhost:3000/catalogue/components/garage.md) `garage` — 5 defaults
- [lakeFS](https://localhost:3000/catalogue/components/lakefs.md) `lakefs` — 2 defaults
- [MinIO](https://localhost:3000/catalogue/components/minio.md) `minio` — 4 defaults
- [Apache Ozone](https://localhost:3000/catalogue/components/ozone.md) `ozone` — 5 defaults
- [SeaweedFS](https://localhost:3000/catalogue/components/seaweedfs.md) `seaweedfs` — 4 defaults
- [Storj](https://localhost:3000/catalogue/components/storj.md) `storj` — 5 defaults
- [OpenStack Swift](https://localhost:3000/catalogue/components/swift.md) `swift` — 5 defaults
- [Wasabi Hot Cloud Storage](https://localhost:3000/catalogue/components/wasabi.md) `wasabi` — 6 defaults

### digitalocean

- [Spaces Object Storage](https://localhost:3000/catalogue/components/digitalocean-spaces.md) `digitalocean-spaces` — 3 defaults

### gcp

- [Google Cloud Storage](https://localhost:3000/catalogue/components/gcs.md) `gcs` — 8 defaults

### ibm

- [IBM Cloud Object Storage](https://localhost:3000/catalogue/components/ibm-cloud-object-storage.md) `ibm-cloud-object-storage` — 4 defaults

### oci

- [OCI Archive Storage](https://localhost:3000/catalogue/components/oci-archive-storage.md) `oci-archive-storage` — 5 defaults
- [OCI Object Storage](https://localhost:3000/catalogue/components/oci-object-storage.md) `oci-object-storage` — 6 defaults

### outscale

- [OUTSCALE Object Storage (OOS)](https://localhost:3000/catalogue/components/outscale-oos.md) `outscale-oos` — 5 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Blob storage addressed by key (S3, GCS, Azure Blob, Magic Pocket).
# zones is optional so object-store-single-zone-with-durability-target can compare it to the durability requirement.
schemaVersion: "1"
type: "kind"
id: "object-store"
category: "data"
properties:
  zones:
    type: "integer"
  replication:
    type: "enum"
    values: ["none", "primary-secondary", "quorum", "erasure-coded"]
    default: "none"
  tier:
    type: "enum"
    values: ["hot", "warm", "cold"]
    default: "hot"
  versioning:
    type: "boolean"
    default: false
  objectLock:
    type: "boolean"
    default: false
  strongReadAfterWrite:
    type: "boolean"
    default: false
    advanced: true
  checksumOnWrite:
    type: "boolean"
    default: false
    advanced: true
  encryptionAtRest:
    type: "boolean"
    default: false
  durabilityNines:
    type: "integer"
    advanced: true
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/object-store
