> ## 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.

# Azure Managed Redis costs

> Compare Azure Managed Redis backend choices using explicit service-adapter planning assumptions.

Tensor9 BYOC planning comparisons for `azure::1.0.0::cache::redis`, with backend choices shown together. Read [how Tensor9 estimates service-adapter costs](/byoc/costs/overview.md) for price scope and capacity qualification, or return to [additional services](/byoc/costs/additional-services.md).

## Azure Cache for Redis allocated cache capacity → ElastiCache

Origin API: `azure::1.0.0::cache::redis`. Target backend: `aws::1.0.0::elasticache`.

**Designed mapping.** This cost model describes an intended adapter. Its estimated price does not establish a delivered or selectable backend.

### Azure Cache for Redis allocated cache capacity · Redis key reads per second

Estimated monthly service charges by Redis key reads per second. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-east-1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Redis key reads per second: monthly service charges by Redis key reads per second. Exact values are in the following table.](/images/diagrams/service-cost/f34cfaf97556c3e9d5a60eb773a356f117dc6c3280f5f7457a1355e2a0e38aab-light.svg)

![Azure Cache for Redis allocated cache capacity · Redis key reads per second: monthly service charges by Redis key reads per second. Exact values are in the following table.](/images/diagrams/service-cost/1995e1ef097fec24e4ba323d6f5c7f1d6555f3604ff1e6b406df9c7728da399e-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Redis key reads per second (operations/s) | Azure Managed Redis | Target scenario | ElastiCache | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 0 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 100 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 100 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 1000 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 1000 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 10000 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 10000 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 100000 | 328.5 | ElastiCache (one copy) | 596.301644995875 | 267.801644995875 |
| 100000 | 328.5 | ElastiCache (two copies) | 1192.60328999175 | 864.10328999175 |
| 1000000 | 328.5 | ElastiCache (one copy) | Unpriced | Unavailable |
| 1000000 | 328.5 | ElastiCache (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / ElastiCache (one copy) | PlanningAssumption | 10 / 20 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / ElastiCache (two copies) | PlanningAssumption | 10 / 20 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / ElastiCache (one copy) | PlanningAssumption | 1010 / 2020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / ElastiCache (two copies) | PlanningAssumption | 1010 / 2020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / ElastiCache (one copy) | PlanningAssumption | 10010 / 20020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / ElastiCache (two copies) | PlanningAssumption | 10010 / 20020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / ElastiCache (one copy) | PlanningAssumption | 100010 / 200020 | 15 | 16 | 48.75 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / ElastiCache (two copies) | PlanningAssumption | 100010 / 200020 | 15 | 16 | 48.75 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000000 operations/s / ElastiCache (one copy) | Unpriced | 1000010 / 2000020 | 143 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000000 operations/s / ElastiCache (two copies) | Unpriced | 1000010 / 2000020 | 143 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| ElastiCache (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (one copy) | Memory per selected cache | 6 | GiB |
| ElastiCache (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (one copy) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (one copy) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (one copy) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (one copy) | Target price guess · read | 0 | USD/read |
| ElastiCache (one copy) | Target price guess · write | 0 | USD/write |
| ElastiCache (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (one copy) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (one copy) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (one copy) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (one copy) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (one copy) | Target monthly base charge | 0 | USD/month |
| ElastiCache (one copy) | Target service minimum | 11.68 | USD/month |
| ElastiCache (one copy) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (one copy) | Minimum primary RAM | 8 | GiB |
| ElastiCache (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| ElastiCache (one copy) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (one copy) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (one copy) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (one copy) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| ElastiCache (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (two copies) | Memory per selected cache | 6 | GiB |
| ElastiCache (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (two copies) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (two copies) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (two copies) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (two copies) | Target price guess · read | 0 | USD/read |
| ElastiCache (two copies) | Target price guess · write | 0 | USD/write |
| ElastiCache (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (two copies) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (two copies) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (two copies) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (two copies) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (two copies) | Target monthly base charge | 0 | USD/month |
| ElastiCache (two copies) | Target service minimum | 11.68 | USD/month |
| ElastiCache (two copies) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (two copies) | Minimum primary RAM | 8 | GiB |
| ElastiCache (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| ElastiCache (two copies) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (two copies) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (two copies) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (two copies) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* ElastiCache for Redis OSS node-based clusters bill whole nodes per hour; the capacity rate is cache.r7g.large's price per GiB, and each replica is another full-price node. Valkey nodes list 20% lower (cache.r7g.large 0.1752 per hour, 0.0134047 per GiB-hour); ElastiCache Serverless is not selected. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* AWS Price List API: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json)
* AWS Price List API, AWSDataTransfer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6f38d8e2054ca3166dde937a9c647167e1adeb1e` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [AWS Price List API](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json), [AWS Price List API, AWSDataTransfer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json).

### Azure Cache for Redis allocated cache capacity · Redis key writes per second

Estimated monthly service charges by Redis key writes per second. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-east-1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Redis key writes per second: monthly service charges by Redis key writes per second. Exact values are in the following table.](/images/diagrams/service-cost/a6ee4f0143d22ff6dc453690a7e2d947d04d88c6aa101cbbd9b806c8f8684096-light.svg)

![Azure Cache for Redis allocated cache capacity · Redis key writes per second: monthly service charges by Redis key writes per second. Exact values are in the following table.](/images/diagrams/service-cost/8dbe3f99c25acc8daadec7e9f8e133ff0ebe019139f968f43177435c92a59f48-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Redis key writes per second (operations/s) | Azure Managed Redis | Target scenario | ElastiCache | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 0 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 100 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 100 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 1000 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 1000 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 10000 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 10000 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 100000 | 328.5 | ElastiCache (one copy) | 715.56197399505 | 387.06197399505 |
| 100000 | 328.5 | ElastiCache (two copies) | 1431.1239479901 | 1102.6239479901 |
| 1000000 | 328.5 | ElastiCache (one copy) | Unpriced | Unavailable |
| 1000000 | 328.5 | ElastiCache (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / ElastiCache (one copy) | PlanningAssumption | 100 / 200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / ElastiCache (two copies) | PlanningAssumption | 100 / 200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / ElastiCache (one copy) | PlanningAssumption | 200 / 400 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / ElastiCache (two copies) | PlanningAssumption | 200 / 400 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / ElastiCache (one copy) | PlanningAssumption | 1100 / 2200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / ElastiCache (two copies) | PlanningAssumption | 1100 / 2200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / ElastiCache (one copy) | PlanningAssumption | 10100 / 20200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / ElastiCache (two copies) | PlanningAssumption | 10100 / 20200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / ElastiCache (one copy) | PlanningAssumption | 100100 / 200200 | 18 | 32 | 58.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / ElastiCache (two copies) | PlanningAssumption | 100100 / 200200 | 18 | 32 | 58.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000000 operations/s / ElastiCache (one copy) | Unpriced | 1000100 / 2000200 | 172 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000000 operations/s / ElastiCache (two copies) | Unpriced | 1000100 / 2000200 | 172 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| ElastiCache (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (one copy) | Memory per selected cache | 6 | GiB |
| ElastiCache (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (one copy) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (one copy) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (one copy) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (one copy) | Target price guess · read | 0 | USD/read |
| ElastiCache (one copy) | Target price guess · write | 0 | USD/write |
| ElastiCache (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (one copy) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (one copy) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (one copy) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (one copy) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (one copy) | Target monthly base charge | 0 | USD/month |
| ElastiCache (one copy) | Target service minimum | 11.68 | USD/month |
| ElastiCache (one copy) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (one copy) | Minimum primary RAM | 8 | GiB |
| ElastiCache (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| ElastiCache (one copy) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (one copy) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (one copy) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (one copy) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| ElastiCache (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (two copies) | Memory per selected cache | 6 | GiB |
| ElastiCache (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (two copies) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (two copies) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (two copies) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (two copies) | Target price guess · read | 0 | USD/read |
| ElastiCache (two copies) | Target price guess · write | 0 | USD/write |
| ElastiCache (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (two copies) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (two copies) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (two copies) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (two copies) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (two copies) | Target monthly base charge | 0 | USD/month |
| ElastiCache (two copies) | Target service minimum | 11.68 | USD/month |
| ElastiCache (two copies) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (two copies) | Minimum primary RAM | 8 | GiB |
| ElastiCache (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| ElastiCache (two copies) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (two copies) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (two copies) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (two copies) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* ElastiCache for Redis OSS node-based clusters bill whole nodes per hour; the capacity rate is cache.r7g.large's price per GiB, and each replica is another full-price node. Valkey nodes list 20% lower (cache.r7g.large 0.1752 per hour, 0.0134047 per GiB-hour); ElastiCache Serverless is not selected. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* AWS Price List API: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json)
* AWS Price List API, AWSDataTransfer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6f38d8e2054ca3166dde937a9c647167e1adeb1e` / `2026-10-22.planning.2`. Curve: `workload-2`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [AWS Price List API](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json), [AWS Price List API, AWSDataTransfer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json).

### Azure Cache for Redis allocated cache capacity · Resident logical cache data

Estimated monthly service charges by Resident logical cache data. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-east-1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Resident logical cache data: monthly service charges by Resident logical cache data. Exact values are in the following table.](/images/diagrams/service-cost/96db09295dfb62a83183a6c56f6aa3b986fcc638ae8b2ffe2a150131b6d215e6-light.svg)

![Azure Cache for Redis allocated cache capacity · Resident logical cache data: monthly service charges by Resident logical cache data. Exact values are in the following table.](/images/diagrams/service-cost/453bef9348d3925223d2d68ecd8f2a5a2ce5f72dc948f00afc1d8698258c37f4-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Resident logical cache data (GiB-month) | Azure Managed Redis | Target scenario | ElastiCache | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 0 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 1 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 1 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 10 | 328.5 | ElastiCache (one copy) | 244.636572306 | -83.863427694 |
| 10 | 328.5 | ElastiCache (two copies) | 489.273144612 | 160.773144612 |
| 100 | 328.5 | ElastiCache (one copy) | 2446.36572306 | 2117.86572306 |
| 100 | 328.5 | ElastiCache (two copies) | 4892.73144612 | 4564.23144612 |
| 1000 | 328.5 | ElastiCache (one copy) | Unpriced | Unavailable |
| 1000 | 328.5 | ElastiCache (two copies) | Unpriced | Unavailable |
| 10000 | 328.5 | ElastiCache (one copy) | Unpriced | Unavailable |
| 10000 | 328.5 | ElastiCache (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 GiB-month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 GiB-month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 GiB-month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 1.5 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 GiB-month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 1.5 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 GiB-month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 3 | 4 | 20 | 0 | 15 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 GiB-month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 3 | 4 | 20 | 0 | 15 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 GiB-month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 28 | 32 | 200 | 0 | 150 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 GiB-month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 28 | 32 | 200 | 0 | 150 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 GiB-month / ElastiCache (one copy) | Unpriced | 110 / 220 | 276 | Unpriced | Unpriced | Unpriced | 1500 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000 GiB-month / ElastiCache (two copies) | Unpriced | 110 / 220 | 276 | Unpriced | Unpriced | Unpriced | 1500 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 10000 GiB-month / ElastiCache (one copy) | Unpriced | 110 / 220 | 2759 | Unpriced | Unpriced | Unpriced | 15000 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 10000 GiB-month / ElastiCache (two copies) | Unpriced | 110 / 220 | 2759 | Unpriced | Unpriced | Unpriced | 15000 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| ElastiCache (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (one copy) | Memory per selected cache | 6 | GiB |
| ElastiCache (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (one copy) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (one copy) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (one copy) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (one copy) | Target price guess · read | 0 | USD/read |
| ElastiCache (one copy) | Target price guess · write | 0 | USD/write |
| ElastiCache (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (one copy) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (one copy) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (one copy) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (one copy) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (one copy) | Target monthly base charge | 0 | USD/month |
| ElastiCache (one copy) | Target service minimum | 11.68 | USD/month |
| ElastiCache (one copy) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (one copy) | Minimum primary RAM | 8 | GiB |
| ElastiCache (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| ElastiCache (one copy) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (one copy) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (one copy) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (one copy) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| ElastiCache (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (two copies) | Memory per selected cache | 6 | GiB |
| ElastiCache (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (two copies) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (two copies) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (two copies) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (two copies) | Target price guess · read | 0 | USD/read |
| ElastiCache (two copies) | Target price guess · write | 0 | USD/write |
| ElastiCache (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (two copies) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (two copies) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (two copies) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (two copies) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (two copies) | Target monthly base charge | 0 | USD/month |
| ElastiCache (two copies) | Target service minimum | 11.68 | USD/month |
| ElastiCache (two copies) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (two copies) | Minimum primary RAM | 8 | GiB |
| ElastiCache (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| ElastiCache (two copies) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (two copies) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (two copies) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (two copies) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* ElastiCache for Redis OSS node-based clusters bill whole nodes per hour; the capacity rate is cache.r7g.large's price per GiB, and each replica is another full-price node. Valkey nodes list 20% lower (cache.r7g.large 0.1752 per hour, 0.0134047 per GiB-hour); ElastiCache Serverless is not selected. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* AWS Price List API: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json)
* AWS Price List API, AWSDataTransfer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6f38d8e2054ca3166dde937a9c647167e1adeb1e` / `2026-10-22.planning.2`. Curve: `workload-3`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [AWS Price List API](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json), [AWS Price List API, AWSDataTransfer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json).

### Azure Cache for Redis allocated cache capacity · Allocated source cache-hours

Estimated monthly service charges by Allocated source cache-hours. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-east-1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Allocated source cache-hours: monthly service charges by Allocated source cache-hours. Exact values are in the following table.](/images/diagrams/service-cost/e4f3743630b42f88877898bad767bb4f64d66a68b51793d4c8961bcb98689be9-light.svg)

![Azure Cache for Redis allocated cache capacity · Allocated source cache-hours: monthly service charges by Allocated source cache-hours. Exact values are in the following table.](/images/diagrams/service-cost/7892912245095036db97693dc522183d6aed2785e8178ff48e9495ff19c7e327-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Allocated source cache-hours (cache-hour/month) | Azure Managed Redis | Target scenario | ElastiCache | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | ElastiCache (one copy) | 97.8546289224 | 97.8546289224 |
| 0 | 0 | ElastiCache (two copies) | 195.7092578448 | 195.7092578448 |
| 730 | 328.5 | ElastiCache (one copy) | 97.8546289224 | -230.6453710776 |
| 730 | 328.5 | ElastiCache (two copies) | 195.7092578448 | -132.7907421552 |
| 1460 | 657 | ElastiCache (one copy) | 171.2456006142 | -485.7543993858 |
| 1460 | 657 | ElastiCache (two copies) | 342.4912012284 | -314.5087987716 |
| 3650 | 1642.5 | ElastiCache (one copy) | 421.99808722785 | -1220.50191277215 |
| 3650 | 1642.5 | ElastiCache (two copies) | 843.9961744557 | -798.5038255443 |
| 7300 | 3285 | ElastiCache (one copy) | 843.9961744557 | -2441.0038255443 |
| 7300 | 3285 | ElastiCache (two copies) | 1687.9923489114 | -1597.0076510886 |
| 36500 | 16425 | ElastiCache (one copy) | 4219.9808722785 | -12205.0191277215 |
| 36500 | 16425 | ElastiCache (two copies) | 8439.961744557 | -7985.038255443 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 730 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 730 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1460 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 2 | 4 | 14 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1460 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 2 | 4 | 14 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 3650 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 5 | 8 | 34.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 3650 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 5 | 8 | 34.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 7300 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 10 | 16 | 69 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 7300 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 10 | 16 | 69 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 36500 cache-hour/month / ElastiCache (one copy) | PlanningAssumption | 110 / 220 | 48 | 64 | 345 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 36500 cache-hour/month / ElastiCache (two copies) | PlanningAssumption | 110 / 220 | 48 | 64 | 345 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| ElastiCache (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (one copy) | Memory per selected cache | 6 | GiB |
| ElastiCache (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (one copy) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (one copy) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (one copy) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (one copy) | Target price guess · read | 0 | USD/read |
| ElastiCache (one copy) | Target price guess · write | 0 | USD/write |
| ElastiCache (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (one copy) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (one copy) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (one copy) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (one copy) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (one copy) | Target monthly base charge | 0 | USD/month |
| ElastiCache (one copy) | Target service minimum | 11.68 | USD/month |
| ElastiCache (one copy) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (one copy) | Minimum primary RAM | 8 | GiB |
| ElastiCache (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| ElastiCache (one copy) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (one copy) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (one copy) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (one copy) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (one copy) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| ElastiCache (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| ElastiCache (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| ElastiCache (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| ElastiCache (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| ElastiCache (two copies) | Memory per selected cache | 6 | GiB |
| ElastiCache (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| ElastiCache (two copies) | Read CPU work per key read | 1 | equivalents/read |
| ElastiCache (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| ElastiCache (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| ElastiCache (two copies) | Target CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| ElastiCache (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| ElastiCache (two copies) | Usable cache memory fraction | 0.75 | fraction |
| ElastiCache (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| ElastiCache (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| ElastiCache (two copies) | Target price guess · read | 0 | USD/read |
| ElastiCache (two copies) | Target price guess · write | 0 | USD/write |
| ElastiCache (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| ElastiCache (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| ElastiCache (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| ElastiCache (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| ElastiCache (two copies) | Target list price · network GiB | 0.09 | USD/network GiB |
| ElastiCache (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| ElastiCache (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| ElastiCache (two copies) | Target list price · GiB-hour | 0.01675592961 | USD/GiB-hour |
| ElastiCache (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| ElastiCache (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| ElastiCache (two copies) | Target price guess · input token | 0 | USD/input token |
| ElastiCache (two copies) | Target price guess · output token | 0 | USD/output token |
| ElastiCache (two copies) | Target monthly base charge | 0 | USD/month |
| ElastiCache (two copies) | Target service minimum | 11.68 | USD/month |
| ElastiCache (two copies) | Minimum primary CPU | 2 | vCPU |
| ElastiCache (two copies) | Minimum primary RAM | 8 | GiB |
| ElastiCache (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| ElastiCache (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| ElastiCache (two copies) | Allocated share of provisioned cost | 1 | fraction |
| ElastiCache (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| ElastiCache (two copies) | Planning peak / mean work | 2 | multiplier |
| ElastiCache (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| ElastiCache (two copies) | Resident state reserved in RAM | 0 | fraction |
| ElastiCache (two copies) | Planning disk utilization | 0.8 | fraction |
| ElastiCache (two copies) | Maintenance and log disk reserve | 0 | GiB |
| ElastiCache (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| ElastiCache (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| ElastiCache (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| ElastiCache (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-east-1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* ElastiCache for Redis OSS node-based clusters bill whole nodes per hour; the capacity rate is cache.r7g.large's price per GiB, and each replica is another full-price node. Valkey nodes list 20% lower (cache.r7g.large 0.1752 per hour, 0.0134047 per GiB-hour); ElastiCache Serverless is not selected. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* AWS Price List API: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json)
* AWS Price List API, AWSDataTransfer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-6f38d8e2054ca3166dde937a9c647167e1adeb1e` / `2026-10-22.planning.2`. Curve: `workload-4`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [AWS Price List API](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonElastiCache/current/us-east-1/index.json), [AWS Price List API, AWSDataTransfer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSDataTransfer/current/us-east-1/index.json).

## Azure Cache for Redis allocated cache capacity → Memorystore for Redis

Origin API: `azure::1.0.0::cache::redis`. Target backend: `google::1.0.0::memorystore::redis`.

**Designed mapping.** This cost model describes an intended adapter. Its estimated price does not establish a delivered or selectable backend.

### Azure Cache for Redis allocated cache capacity · Redis key reads per second

Estimated monthly service charges by Redis key reads per second. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-central1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Redis key reads per second: monthly service charges by Redis key reads per second. Exact values are in the following table.](/images/diagrams/service-cost/6887b77acb200bd3a90fb9f1896eb00f818b1a2e05834a4effc8be43026fba1e-light.svg)

![Azure Cache for Redis allocated cache capacity · Redis key reads per second: monthly service charges by Redis key reads per second. Exact values are in the following table.](/images/diagrams/service-cost/24f6a80e069f5f9c55e17f4140eb72528805ec8dd596c4a89e95604b166ba306-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Redis key reads per second (operations/s) | Azure Managed Redis | Target scenario | Memorystore for Redis | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 0 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 100 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 100 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 1000 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 1000 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 10000 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 10000 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 100000 | 328.5 | Memorystore for Redis (one copy) | 960.8625 | 632.3625 |
| 100000 | 328.5 | Memorystore for Redis (two copies) | 1921.725 | 1593.225 |
| 1000000 | 328.5 | Memorystore for Redis (one copy) | Unpriced | Unavailable |
| 1000000 | 328.5 | Memorystore for Redis (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 10 / 20 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 10 / 20 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 1010 / 2020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 1010 / 2020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 10010 / 20020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 10010 / 20020 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 100010 / 200020 | 15 | 16 | 48.75 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 100010 / 200020 | 15 | 16 | 48.75 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000000 operations/s / Memorystore for Redis (one copy) | Unpriced | 1000010 / 2000020 | 143 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000000 operations/s / Memorystore for Redis (two copies) | Unpriced | 1000010 / 2000020 | 143 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Memorystore for Redis (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (one copy) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (one copy) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (one copy) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (one copy) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (one copy) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (one copy) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (one copy) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (one copy) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (one copy) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (one copy) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (one copy) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (one copy) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Memorystore for Redis (one copy) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (one copy) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (one copy) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (one copy) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Memorystore for Redis (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (two copies) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (two copies) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (two copies) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (two copies) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (two copies) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (two copies) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (two copies) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (two copies) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (two copies) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (two copies) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (two copies) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (two copies) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Memorystore for Redis (two copies) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (two copies) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (two copies) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (two copies) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-central1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* Google Cloud bills Memorystore for Redis per provisioned capacity GiB-hour in 1-second increments with no separate CPU charge. In us-central1 Basic tier lists USD 0.049 (M1, 1-4 GiB), 0.027 (M2, 5-10 GiB), 0.023 (M3), 0.019 (M4) and 0.016 (M5) per GiB-hour; Standard tier lists 0.064, 0.054, 0.046, 0.035 and 0.03 ([https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)). The rate is Basic M2; the two-copy variant equals Standard M2. Other capacity tiers, read replicas and committed-use discounts change the rate. Memorystore has only private endpoints, so selected network is priced at the listed inter-region egress within North America. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* Memorystore for Redis pricing: [https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-88d38420bfbc627f193029e781b7a9e0c528e6fb` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [Memorystore for Redis pricing](https://cloud.google.com/memorystore/docs/redis/pricing).

### Azure Cache for Redis allocated cache capacity · Redis key writes per second

Estimated monthly service charges by Redis key writes per second. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-central1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Redis key writes per second: monthly service charges by Redis key writes per second. Exact values are in the following table.](/images/diagrams/service-cost/8526a403fd8d61b17189d38c065b321fbe46f742c8b3b3ef326a01365bac04a7-light.svg)

![Azure Cache for Redis allocated cache capacity · Redis key writes per second: monthly service charges by Redis key writes per second. Exact values are in the following table.](/images/diagrams/service-cost/35af2e7e80cbf843a0a60996b9daafc236858faa5e3dc0c0832d683fd5cd7a29-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Redis key writes per second (operations/s) | Azure Managed Redis | Target scenario | Memorystore for Redis | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 0 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 100 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 100 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 1000 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 1000 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 10000 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 10000 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 100000 | 328.5 | Memorystore for Redis (one copy) | 1153.035 | 824.535 |
| 100000 | 328.5 | Memorystore for Redis (two copies) | 2306.07 | 1977.57 |
| 1000000 | 328.5 | Memorystore for Redis (one copy) | Unpriced | Unavailable |
| 1000000 | 328.5 | Memorystore for Redis (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 100 / 200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 100 / 200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 200 / 400 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 200 / 400 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 1100 / 2200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 1100 / 2200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 10100 / 20200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 10100 / 20200 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / Memorystore for Redis (one copy) | PlanningAssumption | 100100 / 200200 | 18 | 32 | 58.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100000 operations/s / Memorystore for Redis (two copies) | PlanningAssumption | 100100 / 200200 | 18 | 32 | 58.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000000 operations/s / Memorystore for Redis (one copy) | Unpriced | 1000100 / 2000200 | 172 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000000 operations/s / Memorystore for Redis (two copies) | Unpriced | 1000100 / 2000200 | 172 | Unpriced | Unpriced | Unpriced | 6 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Memorystore for Redis (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (one copy) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (one copy) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (one copy) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (one copy) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (one copy) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (one copy) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (one copy) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (one copy) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (one copy) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (one copy) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (one copy) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (one copy) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Memorystore for Redis (one copy) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (one copy) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (one copy) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (one copy) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Memorystore for Redis (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (two copies) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (two copies) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (two copies) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (two copies) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (two copies) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (two copies) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (two copies) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (two copies) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (two copies) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (two copies) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (two copies) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (two copies) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Memorystore for Redis (two copies) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (two copies) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (two copies) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (two copies) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-central1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* Google Cloud bills Memorystore for Redis per provisioned capacity GiB-hour in 1-second increments with no separate CPU charge. In us-central1 Basic tier lists USD 0.049 (M1, 1-4 GiB), 0.027 (M2, 5-10 GiB), 0.023 (M3), 0.019 (M4) and 0.016 (M5) per GiB-hour; Standard tier lists 0.064, 0.054, 0.046, 0.035 and 0.03 ([https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)). The rate is Basic M2; the two-copy variant equals Standard M2. Other capacity tiers, read replicas and committed-use discounts change the rate. Memorystore has only private endpoints, so selected network is priced at the listed inter-region egress within North America. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* Memorystore for Redis pricing: [https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-88d38420bfbc627f193029e781b7a9e0c528e6fb` / `2026-10-22.planning.2`. Curve: `workload-2`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [Memorystore for Redis pricing](https://cloud.google.com/memorystore/docs/redis/pricing).

### Azure Cache for Redis allocated cache capacity · Resident logical cache data

Estimated monthly service charges by Resident logical cache data. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-central1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Resident logical cache data: monthly service charges by Resident logical cache data. Exact values are in the following table.](/images/diagrams/service-cost/d66fe8e6a94ef609f124568cde82afae0034e25f784da480e5312c5b4a23d12c-light.svg)

![Azure Cache for Redis allocated cache capacity · Resident logical cache data: monthly service charges by Resident logical cache data. Exact values are in the following table.](/images/diagrams/service-cost/0f3cd5796c5445a6c52b1062e412ac01671e47ee38b5b4cca42cb22d419afda1-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Resident logical cache data (GiB-month) | Azure Managed Redis | Target scenario | Memorystore for Redis | Difference |
| -: | -: | - | -: | -: |
| 0 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 0 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 1 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 1 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 10 | 328.5 | Memorystore for Redis (one copy) | 394.2 | 65.7 |
| 10 | 328.5 | Memorystore for Redis (two copies) | 788.4 | 459.9 |
| 100 | 328.5 | Memorystore for Redis (one copy) | 3942 | 3613.5 |
| 100 | 328.5 | Memorystore for Redis (two copies) | 7884 | 7555.5 |
| 1000 | 328.5 | Memorystore for Redis (one copy) | Unpriced | Unavailable |
| 1000 | 328.5 | Memorystore for Redis (two copies) | Unpriced | Unavailable |
| 10000 | 328.5 | Memorystore for Redis (one copy) | Unpriced | Unavailable |
| 10000 | 328.5 | Memorystore for Redis (two copies) | Unpriced | Unavailable |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 GiB-month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 GiB-month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 GiB-month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 1.5 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 GiB-month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 1 | 2 | 8 | 0 | 1.5 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 GiB-month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 3 | 4 | 20 | 0 | 15 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 GiB-month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 3 | 4 | 20 | 0 | 15 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 GiB-month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 28 | 32 | 200 | 0 | 150 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 GiB-month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 28 | 32 | 200 | 0 | 150 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 GiB-month / Memorystore for Redis (one copy) | Unpriced | 110 / 220 | 276 | Unpriced | Unpriced | Unpriced | 1500 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 1000 GiB-month / Memorystore for Redis (two copies) | Unpriced | 110 / 220 | 276 | Unpriced | Unpriced | Unpriced | 1500 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 10000 GiB-month / Memorystore for Redis (one copy) | Unpriced | 110 / 220 | 2759 | Unpriced | Unpriced | Unpriced | 15000 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |
| 10000 GiB-month / Memorystore for Redis (two copies) | Unpriced | 110 / 220 | 2759 | Unpriced | Unpriced | Unpriced | 15000 | `service-adapter-planning-2026-10-22.1` | Demand exceeds the planning model's joint CPU/RAM allocation bounds (96 vCPU, 624 GiB RAM). |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Memorystore for Redis (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (one copy) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (one copy) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (one copy) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (one copy) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (one copy) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (one copy) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (one copy) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (one copy) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (one copy) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (one copy) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (one copy) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (one copy) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Memorystore for Redis (one copy) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (one copy) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (one copy) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (one copy) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Memorystore for Redis (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (two copies) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (two copies) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (two copies) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (two copies) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (two copies) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (two copies) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (two copies) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (two copies) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (two copies) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (two copies) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (two copies) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (two copies) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Memorystore for Redis (two copies) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (two copies) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (two copies) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (two copies) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-central1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* Google Cloud bills Memorystore for Redis per provisioned capacity GiB-hour in 1-second increments with no separate CPU charge. In us-central1 Basic tier lists USD 0.049 (M1, 1-4 GiB), 0.027 (M2, 5-10 GiB), 0.023 (M3), 0.019 (M4) and 0.016 (M5) per GiB-hour; Standard tier lists 0.064, 0.054, 0.046, 0.035 and 0.03 ([https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)). The rate is Basic M2; the two-copy variant equals Standard M2. Other capacity tiers, read replicas and committed-use discounts change the rate. Memorystore has only private endpoints, so selected network is priced at the listed inter-region egress within North America. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* Memorystore for Redis pricing: [https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-88d38420bfbc627f193029e781b7a9e0c528e6fb` / `2026-10-22.planning.2`. Curve: `workload-3`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [Memorystore for Redis pricing](https://cloud.google.com/memorystore/docs/redis/pricing).

### Azure Cache for Redis allocated cache capacity · Allocated source cache-hours

Estimated monthly service charges by Allocated source cache-hours. Adapter hosting and Tensor9 fees are excluded. Source: eastus; target: us-central1; currency: USD.

![Azure Cache for Redis allocated cache capacity · Allocated source cache-hours: monthly service charges by Allocated source cache-hours. Exact values are in the following table.](/images/diagrams/service-cost/dc64b141c5bf8515eb426f1c8212ccfcf71c172427c3b0b7f66dafc0399690ee-light.svg)

![Azure Cache for Redis allocated cache capacity · Allocated source cache-hours: monthly service charges by Allocated source cache-hours. Exact values are in the following table.](/images/diagrams/service-cost/8dd34c1bddb0da6b9b13ced232b38deb0b32f8bea1aad4a63be2e174009dafe0-dark.svg)

Comparison pills describe all sampled scale points; card amounts show the named workload. Costs The Same means within 20% at every point. Costs Depend includes mixed results and unpriced samples.

Exact sampled model outputs in USD/month. Difference means target minus origin; a positive difference means the target costs more.
Estimated allocation from planning assumptions; not benchmark calibrated. Lines connect evaluated samples; intermediate capacity and prices are not inferred. Unpriced means no target quote or cost difference is available within the sizing policy.

| Allocated source cache-hours (cache-hour/month) | Azure Managed Redis | Target scenario | Memorystore for Redis | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | Memorystore for Redis (one copy) | 157.68 | 157.68 |
| 0 | 0 | Memorystore for Redis (two copies) | 315.36 | 315.36 |
| 730 | 328.5 | Memorystore for Redis (one copy) | 157.68 | -170.82 |
| 730 | 328.5 | Memorystore for Redis (two copies) | 315.36 | -13.14 |
| 1460 | 657 | Memorystore for Redis (one copy) | 275.94 | -381.06 |
| 1460 | 657 | Memorystore for Redis (two copies) | 551.88 | -105.12 |
| 3650 | 1642.5 | Memorystore for Redis (one copy) | 679.995 | -962.505 |
| 3650 | 1642.5 | Memorystore for Redis (two copies) | 1359.99 | -282.51 |
| 7300 | 3285 | Memorystore for Redis (one copy) | 1359.99 | -1925.01 |
| 7300 | 3285 | Memorystore for Redis (two copies) | 2719.98 | -565.02 |
| 36500 | 16425 | Memorystore for Redis (one copy) | 6799.95 | -9625.05 |
| 36500 | 16425 | Memorystore for Redis (two copies) | 13599.9 | -2825.1 |

**Estimated allocation from planning assumptions; not benchmark calibrated.**

The sizing policy grows compute with translated work and peak headroom, memory with compute and working set, and disk with resident working state and reserve. Monthly usage is distinct from resident data; each workload's assumptions define the translation. HA changes pricing, not this policy's throughput estimate. Unpriced workloads exceed the policy's configuration range; no silent vertical cap or automatic sharding is assumed.

| Sample / scenario | Basis | Mean / peak work/s | Required vCPU | Allocated vCPU | Memory GiB | SSD GiB | Resident GiB | Policy | Constraints |
| - | - | -: | -: | -: | -: | -: | -: | - | - |
| 0 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 730 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 730 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 2 | 2 | 8 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1460 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 2 | 4 | 14 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1460 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 2 | 4 | 14 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 3650 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 5 | 8 | 34.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 3650 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 5 | 8 | 34.5 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 7300 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 10 | 16 | 69 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 7300 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 10 | 16 | 69 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 36500 cache-hour/month / Memorystore for Redis (one copy) | PlanningAssumption | 110 / 220 | 48 | 64 | 345 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |
| 36500 cache-hour/month / Memorystore for Redis (two copies) | PlanningAssumption | 110 / 220 | 48 | 64 | 345 | 0 | 6 | `service-adapter-planning-2026-10-22.1` | None reported |

* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Memorystore for Redis (one copy) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (one copy) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (one copy) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (one copy) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (one copy) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (one copy) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (one copy) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (one copy) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (one copy) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (one copy) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (one copy) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (one copy) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (one copy) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (one copy) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (one copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (one copy) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (one copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (one copy) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (one copy) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (one copy) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (one copy) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (one copy) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (one copy) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (one copy) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Memorystore for Redis (one copy) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (one copy) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (one copy) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (one copy) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (one copy) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Memorystore for Redis (two copies) | Origin list price · Allocated Standard C3 cache-hours | 0.45 | USD/cache-hour |
| Memorystore for Redis (two copies) | Origin list price · Average resident Redis data | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Origin list price · Redis key reads | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Redis key writes | 0 | USD/Operations |
| Memorystore for Redis (two copies) | Origin list price · Cache management requests | 0 | USD/Requests |
| Memorystore for Redis (two copies) | Memory per selected cache | 6 | GiB |
| Memorystore for Redis (two copies) | Target / origin allocated resources | 1.15 | multiplier |
| Memorystore for Redis (two copies) | Read CPU work per key read | 1 | equivalents/read |
| Memorystore for Redis (two copies) | Write CPU work per key write | 1.2 | equivalents/write |
| Memorystore for Redis (two copies) | Key-operation throughput per vCPU | 20000 | equivalents/vCPU-second |
| Memorystore for Redis (two copies) | Target CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Peak / mean key-operation traffic | 2 | multiplier |
| Memorystore for Redis (two copies) | Physical memory per logical resident GiB | 1.5 | multiplier |
| Memorystore for Redis (two copies) | Usable cache memory fraction | 0.75 | fraction |
| Memorystore for Redis (two copies) | Minimum RAM per selected CPU | 3.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Maximum RAM per selected CPU | 7.25 | GiB/vCPU |
| Memorystore for Redis (two copies) | Target price guess · read | 0 | USD/read |
| Memorystore for Redis (two copies) | Target price guess · write | 0 | USD/write |
| Memorystore for Redis (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Memorystore for Redis (two copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Memorystore for Redis (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Memorystore for Redis (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Memorystore for Redis (two copies) | Target list price · network GiB | 0.02 | USD/network GiB |
| Memorystore for Redis (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Memorystore for Redis (two copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Target list price · GiB-hour | 0.027 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Memorystore for Redis (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Memorystore for Redis (two copies) | Target price guess · input token | 0 | USD/input token |
| Memorystore for Redis (two copies) | Target price guess · output token | 0 | USD/output token |
| Memorystore for Redis (two copies) | Target monthly base charge | 0 | USD/month |
| Memorystore for Redis (two copies) | Target service minimum | 35.77 | USD/month |
| Memorystore for Redis (two copies) | Minimum primary CPU | 2 | vCPU |
| Memorystore for Redis (two copies) | Minimum primary RAM | 8 | GiB |
| Memorystore for Redis (two copies) | Modeled cache SSD allocation (excluded) | 0 | GiB |
| Memorystore for Redis (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Memorystore for Redis (two copies) | Allocated share of provisioned cost | 1 | fraction |
| Memorystore for Redis (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Memorystore for Redis (two copies) | Planning peak / mean work | 2 | multiplier |
| Memorystore for Redis (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| Memorystore for Redis (two copies) | Resident state reserved in RAM | 0 | fraction |
| Memorystore for Redis (two copies) | Planning disk utilization | 0.8 | fraction |
| Memorystore for Redis (two copies) | Maintenance and log disk reserve | 0 | GiB |
| Memorystore for Redis (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Memorystore for Redis (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Memorystore for Redis (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Memorystore for Redis (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Only the selected native meter varies; other usage quantities and assumptions retain their displayed defaults. Editable authored planning guesses, not verified provider tariffs, benchmark measurements or a commercial quote. Other native meters retain their explicitly displayed default quantities.
* Planning estimate · editable authored rates and sizing assumptions dated 2026-10-22; not verified provider prices. eastus → us-central1, USD/month.
* Source prices are reference charges, not an invoice. Target lines cover selected service usage/configuration only; adapter hosting and Tensor9 fees are excluded.
* Explicit tariff samples are not performance measurements or capacity qualification. No interpolation or break-even guarantee is implied.
* Variant assumptions show the first axis sample; any axis-dependent configuration is described by this curve's workload note.
* Rates are cited provider list prices, editable for discounts, commitments or another region. Workload translation and capacity coefficients remain editable planning assumptions, not benchmark measurements or a commercial quote.
* Default-zero rates are explicit assumptions, not evidence that the deployed service or resource is free.
* Provisioned-unit minimums use an editable approximate allocation floor. Modeled target service cost is max(usage/allocation, minimum), with billable network, durable staging and dependent sinks added separately; actual RU/TU sizing, scaling increments and throughput remain unqualified.
* Durable staging is priced once: provisioned targets include adapter state in their selected allocation; native targets add a separate staging allocation when required. Adapter hosting is a separate allocation and must exclude resources already priced as staging, workers or target capacity.
* A declared adapter mapping and cost model do not establish implementation availability or service equivalence.
* This exact directed mapping has a design profile. Cost modeling does not establish an implemented or deployable adapter.
* Origin unit prices are cited provider list prices; capacity coefficients are editable authored planning guesses, not measured capacity.
* The origin is the exact registered azure::1.0.0::cache::redis identity. Renamed products and future aliases require explicit mapping updates.
* Source allocated CPU-hours and memory-hours establish independent minimum target allocation. Neither management API requests nor a key-operation count is an instance count.
* Peak weighted key-operation work and resident data can promote the allocation above those minima. CPU rounds to whole cores and RAM to quarter GiB.
* CPU and RAM are aggregate resources over 730 hours. Selected backend tariffs own replica count, availability configuration and actual instance shapes.
* A multi-core estimate assumes the workload can be partitioned. Redis command execution, hot keys, cross-key transactions and clustering can prevent linear scale.
* Zero allocated resources and zero workload do not prove target scale-to-zero; the selected backend may retain a provisioned minimum.
* Azure Cache for Redis bills per cache size; cache-hours times the size's memory set the RAM minimum and CPU follows the selected memory shape.
* Google Cloud bills Memorystore for Redis per provisioned capacity GiB-hour in 1-second increments with no separate CPU charge. In us-central1 Basic tier lists USD 0.049 (M1, 1-4 GiB), 0.027 (M2, 5-10 GiB), 0.023 (M3), 0.019 (M4) and 0.016 (M5) per GiB-hour; Standard tier lists 0.064, 0.054, 0.046, 0.035 and 0.03 ([https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)). The rate is Basic M2; the two-copy variant equals Standard M2. Other capacity tiers, read replicas and committed-use discounts change the rate. Memorystore has only private endpoints, so selected network is priced at the listed inter-region egress within North America. The CPU rate is zero because capacity GiB is the billed quantity, and the billed capacity is the cache family's selected RAM rather than the generic planning CPU tier's RAM; key-operation CPU demand raises cost only through the family's RAM-per-CPU shape, which approximates managed throughput growing with capacity and is not a measured fit. The capacity charge and the minimum compare using their maximum, not their sum.
* Cache storedGiB represents resident RAM footprint, not billable SSD. Persistence, snapshots and backup disks require a separate explicit allocation.
* Row-store throughput (capacityOpsPerVcpuSecond, default 1500) is measured-by-tensor9 as a lower bound: the DynamoDB adapter on Cloud SQL db-custom-2-7680 (2 vCPU, PostgreSQL 16, us-west1) served 2,974 ops/s of YCSB-A at 16 threads without recorded saturation (src/main/kotlin/t9/prime/equiv/generated/eval/CloudsqlPostgresqlYcsbAT16GoYcsbV1\_0\_0.kt). Published CPU-bound pgbench reaches 3,101 read-write transactions and 20,289 point reads per vCPU-second (AWS z1d.2xlarge, PostgreSQL 14.5), so actual capacity is likely higher. Reads and writes share one coefficient: at the same adapter version, read-only YCSB-C was not faster than 50%-update YCSB-A.
* Log-broker throughput (capacityStreamMiBPerVcpuSecond 20 at 0.5 utilization, 4 GiB RAM per vCPU) is provider-documented by Google Managed Service for Apache Kafka sizing ([https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size](https://docs.cloud.google.com/managed-service-for-apache-kafka/docs/plan-cluster-size)): write-equivalent bytes are replicated writes plus a quarter of reads. Producer batches below 10 KB lower per-CPU throughput; that penalty is not modeled.
* Disk utilization 0.8 is provider-documented headroom below Cloud SQL automatic storage increase, which triggers near 91-95% full ([https://docs.cloud.google.com/sql/docs/postgres/instance-settings](https://docs.cloud.google.com/sql/docs/postgres/instance-settings)). The 20 GiB reserve exceeds PostgreSQL's 1 GB default max\_wal\_size; the remainder of that reserve is unmeasured.
* CPU tiers, 4 GiB per vCPU, at most 6.5 GiB per vCPU, 96 vCPU and 65,536 GiB disk follow Cloud SQL Enterprise custom machine limits (provider-documented, same page); 624 GiB is 96 × 6.5. Targets billed per node, unit or throughput unit are sized by their backend instead.
* No public evidence: peak/mean work (2) and the RAM working-set fraction (0.1). Proposed measurements: the p99 one-minute rate over the monthly mean from customer CloudWatch metrics; the buffer hit ratio while stepping RAM under a fixed YCSB-B load.
* Stored GiB already includes the origin family's physical footprint assumptions; no second storage amplification is applied.
* The workload family already selected resource-hours; the throughput coefficient is not applied again.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* Cache resident GiB is RAM provenance. Family-selected RAM-hours cover the working set;
* no SSD allocation is modeled. Persistence, snapshots and backup disks remain excluded.
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* Memorystore for Redis pricing: [https://cloud.google.com/memorystore/docs/redis/pricing](https://cloud.google.com/memorystore/docs/redis/pricing)

Cost scope: Modeled target native service and explicitly modeled state allocation; hosting and Tensor9 fees only when supplied.

Excluded costs and workload features:

* Replication traffic, snapshots, persistence write IOPS, network egress, cluster management premiums, licenses and migration.
* Command-specific complexity, Lua/scripts, module behavior, eviction/expiry churn, blocking commands, multi-key locality and benchmark-qualified latency.
* Taxes, discounts, credits and free-tier allowances unless explicitly reflected in edited rates.
* Unmodeled dependent services, task execution and operations outside the selected workload family.

List prices read: 2026-10-22. Model: `plan-88d38420bfbc627f193029e781b7a9e0c528e6fb` / `2026-10-22.planning.2`. Curve: `workload-4`.

Sources: [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [Memorystore for Redis pricing](https://cloud.google.com/memorystore/docs/redis/pricing).

See the [service catalog](/byoc/service-adapters/catalog.md) for operation coverage, supported directions and backend limitations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.