> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensor9.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Blob Storage

> Operations, limits and service levels for Blob Storage adapters with Azure origin APIs.

These terms describe the origin API served by the adapter, not direct calls to the target service. Management-request latency covers accepting and handling the API call; it does not promise that a cloud resource finishes provisioning within that time.

## Service level agreements

<Warning>
  These tables show Tensor9's standard service levels and adapters whose standard terms are still being defined. Your signed agreement determines the SLAs, covered adapters and operations, limits, remedies and support terms that apply to your deployment.
</Warning>

Listed terms cover requests sent through this service adapter. They do not cover direct connections to the target service or replace the cloud provider's own SLA. Each origin-to-target pair has its own terms or an explicit pending status.

See the [SLA tables](/byoc/support/service-adapter-slas), [measurement rules](/byoc/support/service-levels), and [scaling conditions](/byoc/support/scaling-and-limits).

<a id="sla-azure-1-0-0-blob-storage-to-aws-1-0-0-s3-cb54bd57700a4eb7" />

### Blob Storage to S3

| SLA                                         | Service level                                                                 | What is covered                                                                                                                         | Conditions                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Small block-blob requests with lease checks | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`                                                                     | At most 64 KiB full object data and 8 KiB metadata; one blob and one applicable lease. The adapter-owned lease lookup remains timed, including when the blob has no active lease.                                                                                                                                                                                                   |
| Bounded blob listing                        | 5 ms monthly p99                                                              | `azure::1.0.0::blob-storage`: `List Blobs`                                                                                              | One page of at most 1,000 entries and 1 MiB returned data; no paginator traversal.                                                                                                                                                                                                                                                                                                  |
| Blob lease operations                       | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Lease Blob`                                                                                              | One configuration object, at most 50 entries and 32 KiB request/response data. A list is one page of at most 100 records and 256 KiB, not a paginator traversing the whole account.                                                                                                                                                                                                 |
| Storage container lifecycle                 | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Create Container`, `Delete Container`                                                                    | One configuration object, at most 50 entries and 32 KiB request/response data. A list is one page of at most 100 records and 256 KiB, not a paginator traversing the whole account.                                                                                                                                                                                                 |
| Correct request handling                    | 99.9% per calendar month                                                      | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`, `List Blobs`, `Lease Blob`, `Create Container`, `Delete Container` | The request uses an operation and request shape that this adapter profile lists as available, and stays within the limits in the service page and your signed agreement. A target-service failure does not count as an adapter failure when Tensor9 correctly returns that failure to the caller.                                                                                   |
| Documented adapter behavior                 | Preserve the supported behavior documented for this adapter                   | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`, `List Blobs`, `Lease Blob`, `Create Container`, `Delete Container` | Enforce acquire, renew, change, release and break consistently across instances. A stale lease ID must not authorize a write merely to meet a latency target. Preserve accepted bytes and supported conditional-write behavior. Append blobs, page blobs and tag-index queries remain outside this profile; whole-object read/modify/write is not a substitute for their atomicity. |
| Endpoint reachability                       | 99.9% per calendar month                                                      | Adapter endpoint reachability                                                                                                           | The agreed production deployment has healthy target connectivity and receives a valid adapter health probe. This measures the adapter endpoint, not the target provider's service.                                                                                                                                                                                                  |
| Adapter autoscaling and limits              | Automatic scaling within the workload and deployment limits in your agreement | Adapter behavior across requests                                                                                                        | Your agreement states the maximum request rate, burst size, request and response sizes, concurrency, and target calls per request. Tensor9 maintains adapter capacity inside that envelope. Target-service quotas and capacity are separate.                                                                                                                                        |

**Deployment availability.** These targets describe this adapter design. Confirm that your deployment supports the listed operations; a numerical target does not establish runtime availability.

**What Tensor9 covers.** These service levels cover the adapter between the origin API and target API. They do not replace the target provider's SLA.

**How latency is counted.** Adapter work, including metadata and coordination, counts. Only separately measured permitted target waits are excluded.

**Which terms apply.** Your signed agreement names the covered operations, workload limits, remedies, and final service levels for your deployment.

#### What this adapter does

For `aws::1.0.0::s3`, containers map to target buckets and block blobs to objects. Lease state is owned by the adapter because neither target offers the Azure Blob lease API. The small-request row therefore includes durable ownership checks, not just header rewriting. S3 conditions and object identities must be translated while lease ownership remains separate from the stored object. These targets describe this adapter design; confirm that your deployment supports the listed operations. A numerical target does not establish runtime availability.

#### How the latency targets were chosen

**Small block-blob requests with lease checks: 20 ms monthly p99.** `Delete Blob`, `Get Blob`, `Put Blob`. Translate Blob Storage operations and enforce durable lease ownership before native object access. A lease-backed path cannot inherit the cost of a stateless object forwarder.

**Bounded blob listing: 5 ms monthly p99.** `List Blobs`. Translate native object listing entries, metadata and continuation markers into the origin response.

**Blob lease operations: 20 ms monthly p99.** `Lease Blob`. Bounded configuration validation, durable adapter metadata and response encoding; native provisioning completion and propagation are separate.

**Storage container lifecycle: 20 ms monthly p99.** `Create Container`, `Delete Container`. Bounded configuration validation, durable adapter metadata and response encoding; native provisioning completion and propagation are separate.

Your signed agreement sets the terms for your deployment. A target does not add an operation or option that the compatibility tables mark unavailable.

#### What counts toward latency

For a request-response row, measure from the agreed ingress boundary to dispatch of the complete response. A row that explicitly names a first response chunk ends at that chunk; its number does not cover the rest of the stream. A long-poll row names the intentional wait and when adapter delay starts. Include parsing, authorization, admission, translation, serialization, adapter-owned storage and coordination, retries and response handling. Subtract only separately measured target-workload waits and external network segments allowed by the measurement rules. The adapter's own response handling and dispatch remain covered. A database used for adapter metadata is still adapter work, even if a cloud provider hosts it.

For concurrent calls, exclude the union of permitted wait intervals, not the sum of overlapping spans. Calculate each request's adapter duration first, then the monthly p99. Do not subtract one service's p99 from another's. Known adapter timeouts are over-budget samples; failed or incomplete requests cannot disappear to improve the percentile. Missing measurements do not become zero latency. An SDK call span alone does not prove how much of its duration can be excluded.

#### Availability and failures

The 99.9% request target measures correct adapter handling, not the percentage of application calls that return success. Correctly forwarding a target quota or permission error is different from producing that error because the adapter sent the wrong request. Adapter-caused failures count even when the target is healthy.

With 1,000,000 eligible calls in a month, a 99.9% target permits at most 1,000 adapter-attributable failures. Endpoint probes have their own denominator. Correctness defects remain actionable even when the monthly availability percentage is met.

#### Scaling and target-service capacity

Size the lease store and its concurrency with the request handlers. More replicas cannot bypass an exclusive lease or remove contention on one blob. Bound active leases, object bytes, metadata size, lease renewal frequency and simultaneous transfers. Tensor9 scales within those limits; the customer supplies object-store capacity and ensures writers do not bypass the adapter when lease correctness matters.

Tell Tensor9 the expected steady rate, bursts, concurrency, payload sizes and operation mix. Tensor9 sizes and scales the adapter for the agreed load; you choose and monitor the target service's capacity with Tensor9's help. A latency budget is not a requests-per-second rating. Larger requests and higher rates need explicit terms, not silent inheritance of a small-request SLA.

#### Data and behavior guarantees

Enforce acquire, renew, change, release and break consistently across instances. A stale lease ID must not authorize a write merely to meet a latency target. Preserve accepted bytes and supported conditional-write behavior. Append blobs, page blobs and tag-index queries remain outside this profile; whole-object read/modify/write is not a substitute for their atomicity.

#### Example and diagnosis

A worker leases `reports/current.json`, writes a 16 KiB replacement and renews the lease. The write uses the lease-aware blob row and the renewal uses Lease Blob. If the object store is fast but the lease store is slow, that delay still counts as adapter time. Keep the lease action and timing, but redact lease IDs before sharing diagnostics.

Use `tensor9 explain` and the documented explain headers to understand the selected adapter and its behavior. Correlate available request diagnostics with the target provider's latency, throttling and capacity metrics. An explain report helps diagnose a request; it is not by itself a qualified SLA timing measurement. Share the operation, request shape, timestamps and request identifiers with support, with credentials and customer payloads removed.

<a id="sla-azure-1-0-0-blob-storage-to-google-1-0-0-gcs-2154b7fe845d1680" />

### Blob Storage to Cloud Storage

| SLA                                         | Service level                                                                 | What is covered                                                                                                                         | Conditions                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Small block-blob requests with lease checks | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`                                                                     | At most 64 KiB full object data and 8 KiB metadata; one blob and one applicable lease. The adapter-owned lease lookup remains timed, including when the blob has no active lease.                                                                                                                                                                                                   |
| Bounded blob listing                        | 5 ms monthly p99                                                              | `azure::1.0.0::blob-storage`: `List Blobs`                                                                                              | One page of at most 1,000 entries and 1 MiB returned data; no paginator traversal.                                                                                                                                                                                                                                                                                                  |
| Blob lease operations                       | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Lease Blob`                                                                                              | One configuration object, at most 50 entries and 32 KiB request/response data. A list is one page of at most 100 records and 256 KiB, not a paginator traversing the whole account.                                                                                                                                                                                                 |
| Storage container lifecycle                 | 20 ms monthly p99                                                             | `azure::1.0.0::blob-storage`: `Create Container`, `Delete Container`                                                                    | One configuration object, at most 50 entries and 32 KiB request/response data. A list is one page of at most 100 records and 256 KiB, not a paginator traversing the whole account.                                                                                                                                                                                                 |
| Correct request handling                    | 99.9% per calendar month                                                      | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`, `List Blobs`, `Lease Blob`, `Create Container`, `Delete Container` | The request uses an operation and request shape that this adapter profile lists as available, and stays within the limits in the service page and your signed agreement. A target-service failure does not count as an adapter failure when Tensor9 correctly returns that failure to the caller.                                                                                   |
| Documented adapter behavior                 | Preserve the supported behavior documented for this adapter                   | `azure::1.0.0::blob-storage`: `Delete Blob`, `Get Blob`, `Put Blob`, `List Blobs`, `Lease Blob`, `Create Container`, `Delete Container` | Enforce acquire, renew, change, release and break consistently across instances. A stale lease ID must not authorize a write merely to meet a latency target. Preserve accepted bytes and supported conditional-write behavior. Append blobs, page blobs and tag-index queries remain outside this profile; whole-object read/modify/write is not a substitute for their atomicity. |
| Endpoint reachability                       | 99.9% per calendar month                                                      | Adapter endpoint reachability                                                                                                           | The agreed production deployment has healthy target connectivity and receives a valid adapter health probe. This measures the adapter endpoint, not the target provider's service.                                                                                                                                                                                                  |
| Adapter autoscaling and limits              | Automatic scaling within the workload and deployment limits in your agreement | Adapter behavior across requests                                                                                                        | Your agreement states the maximum request rate, burst size, request and response sizes, concurrency, and target calls per request. Tensor9 maintains adapter capacity inside that envelope. Target-service quotas and capacity are separate.                                                                                                                                        |

**Deployment availability.** These targets describe this adapter design. Confirm that your deployment supports the listed operations; a numerical target does not establish runtime availability.

**What Tensor9 covers.** These service levels cover the adapter between the origin API and target API. They do not replace the target provider's SLA.

**How latency is counted.** Adapter work, including metadata and coordination, counts. Only separately measured permitted target waits are excluded.

**Which terms apply.** Your signed agreement names the covered operations, workload limits, remedies, and final service levels for your deployment.

#### What this adapter does

For `google::1.0.0::gcs`, containers map to target buckets and block blobs to objects. Lease state is owned by the adapter because neither target offers the Azure Blob lease API. The small-request row therefore includes durable ownership checks, not just header rewriting. ETag conditions map to Google object-generation preconditions alongside the lease check. These targets describe this adapter design; confirm that your deployment supports the listed operations. A numerical target does not establish runtime availability.

#### How the latency targets were chosen

**Small block-blob requests with lease checks: 20 ms monthly p99.** `Delete Blob`, `Get Blob`, `Put Blob`. Translate Blob Storage operations and enforce durable lease ownership before native object access. A lease-backed path cannot inherit the cost of a stateless object forwarder.

**Bounded blob listing: 5 ms monthly p99.** `List Blobs`. Translate native object listing entries, metadata and continuation markers into the origin response.

**Blob lease operations: 20 ms monthly p99.** `Lease Blob`. Bounded configuration validation, durable adapter metadata and response encoding; native provisioning completion and propagation are separate.

**Storage container lifecycle: 20 ms monthly p99.** `Create Container`, `Delete Container`. Bounded configuration validation, durable adapter metadata and response encoding; native provisioning completion and propagation are separate.

Your signed agreement sets the terms for your deployment. A target does not add an operation or option that the compatibility tables mark unavailable.

#### What counts toward latency

For a request-response row, measure from the agreed ingress boundary to dispatch of the complete response. A row that explicitly names a first response chunk ends at that chunk; its number does not cover the rest of the stream. A long-poll row names the intentional wait and when adapter delay starts. Include parsing, authorization, admission, translation, serialization, adapter-owned storage and coordination, retries and response handling. Subtract only separately measured target-workload waits and external network segments allowed by the measurement rules. The adapter's own response handling and dispatch remain covered. A database used for adapter metadata is still adapter work, even if a cloud provider hosts it.

For concurrent calls, exclude the union of permitted wait intervals, not the sum of overlapping spans. Calculate each request's adapter duration first, then the monthly p99. Do not subtract one service's p99 from another's. Known adapter timeouts are over-budget samples; failed or incomplete requests cannot disappear to improve the percentile. Missing measurements do not become zero latency. An SDK call span alone does not prove how much of its duration can be excluded.

#### Availability and failures

The 99.9% request target measures correct adapter handling, not the percentage of application calls that return success. Correctly forwarding a target quota or permission error is different from producing that error because the adapter sent the wrong request. Adapter-caused failures count even when the target is healthy.

With 1,000,000 eligible calls in a month, a 99.9% target permits at most 1,000 adapter-attributable failures. Endpoint probes have their own denominator. Correctness defects remain actionable even when the monthly availability percentage is met.

#### Scaling and target-service capacity

Size the lease store and its concurrency with the request handlers. More replicas cannot bypass an exclusive lease or remove contention on one blob. Bound active leases, object bytes, metadata size, lease renewal frequency and simultaneous transfers. Tensor9 scales within those limits; the customer supplies object-store capacity and ensures writers do not bypass the adapter when lease correctness matters.

Tell Tensor9 the expected steady rate, bursts, concurrency, payload sizes and operation mix. Tensor9 sizes and scales the adapter for the agreed load; you choose and monitor the target service's capacity with Tensor9's help. A latency budget is not a requests-per-second rating. Larger requests and higher rates need explicit terms, not silent inheritance of a small-request SLA.

#### Data and behavior guarantees

Enforce acquire, renew, change, release and break consistently across instances. A stale lease ID must not authorize a write merely to meet a latency target. Preserve accepted bytes and supported conditional-write behavior. Append blobs, page blobs and tag-index queries remain outside this profile; whole-object read/modify/write is not a substitute for their atomicity.

#### Example and diagnosis

A worker leases `reports/current.json`, writes a 16 KiB replacement and renews the lease. The write uses the lease-aware blob row and the renewal uses Lease Blob. If the object store is fast but the lease store is slow, that delay still counts as adapter time. Keep the lease action and timing, but redact lease IDs before sharing diagnostics.

Use `tensor9 explain` and the documented explain headers to understand the selected adapter and its behavior. Correlate available request diagnostics with the target provider's latency, throttling and capacity metrics. An explain report helps diagnose a request; it is not by itself a qualified SLA timing measurement. Share the operation, request shape, timestamps and request identifiers with support, with credentials and customer payloads removed.

## Debug this service

For requests through a service adapter, use Explain and request diagnostics to investigate the selected mapping.
Follow the [BYOC service-adapter debugging runbook](/byoc/service-adapters/debugging/overview) to capture and interpret the diagnostic evidence.

[Service Catalog](/byoc/service-adapters/catalog).
