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

# EventBridge costs

> Compare EventBridge backend choices using explicit service-adapter planning assumptions.

Tensor9 BYOC planning comparisons for `aws::1.0.0::events`, 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).

## EventBridge → Azure Event Grid

Origin API: `aws::1.0.0::events`. Target backend: `azure::1.0.0::eventgrid`.

**Native or deployment mapping.** This mapping uses native Event Grid delivery rather than an EventBridge API endpoint. Event delivery follows the target service's behavior; there is no EventBridge adapter request to measure. Cost estimates describe the selected service resources; operation coverage remains separate.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: East US; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/d2944e5e51098cb2363b8e2fac6e076b747164a17fb995d2cb56803a33a06702-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/3a5357a6c53ecdf355c0539ff3bfdcba506b04374ddd56fe91f45268beac12e6-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.

| Custom event units (per second) | EventBridge | Target scenario | Azure Event Grid | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | Azure Event Grid (one staging copy) | 118.178 | 118.178 |
| 0 | 0 | Azure Event Grid (two staging copies) | 236.356 | 236.356 |
| 1 | 2.628 | Azure Event Grid (one staging copy) | 121.2716 | 118.6436 |
| 1 | 2.628 | Azure Event Grid (two staging copies) | 239.4496 | 236.8216 |
| 10 | 26.28 | Azure Event Grid (one staging copy) | 149.654 | 123.374 |
| 10 | 26.28 | Azure Event Grid (two staging copies) | 267.832 | 241.552 |
| 100 | 262.8 | Azure Event Grid (one staging copy) | 433.478 | 170.678 |
| 100 | 262.8 | Azure Event Grid (two staging copies) | 551.656 | 288.856 |
| 1000 | 2628 | Azure Event Grid (one staging copy) | 3979.964 | 1351.964 |
| 1000 | 2628 | Azure Event Grid (two staging copies) | 4806.388 | 2178.388 |
| 10000 | 26280 | Azure Event Grid (one staging copy) | 36409.484 | 10129.484 |
| 10000 | 26280 | Azure Event Grid (two staging copies) | 41283.028 | 15003.028 |

**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 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Azure Event Grid (one staging copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Azure Event Grid (two staging copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Azure Event Grid (one staging copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Azure Event Grid (one staging copy) | Representative event size | 1024 | bytes |
| Azure Event Grid (one staging copy) | Rules evaluated per event | 10 | rules |
| Azure Event Grid (one staging copy) | Point-read work equivalent per rule | 0.1 | operations |
| Azure Event Grid (one staging copy) | Matched targets per event | 1 | targets |
| Azure Event Grid (one staging copy) | Delivery attempts | 1 | attempts/target |
| Azure Event Grid (one staging copy) | Outbox residence window | 60 | seconds |
| Azure Event Grid (one staging copy) | Target price guess · read | 0 | USD/read |
| Azure Event Grid (one staging copy) | Target price guess · write | 0 | USD/write |
| Azure Event Grid (one staging copy) | Target list price · provider operation | 0.0000006 | USD/provider operation |
| Azure Event Grid (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Azure Event Grid (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Azure Event Grid (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Azure Event Grid (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| Azure Event Grid (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Azure Event Grid (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Azure Event Grid (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Azure Event Grid (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Azure Event Grid (one staging copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Azure Event Grid (one staging copy) | Target price guess · input token | 0 | USD/input token |
| Azure Event Grid (one staging copy) | Target price guess · output token | 0 | USD/output token |
| Azure Event Grid (one staging copy) | Included before billing · provider operation | 100000 | provider operation |
| Azure Event Grid (one staging copy) | Target monthly base charge | 0 | USD/month |
| Azure Event Grid (one staging copy) | Approximate target service minimum | 0 | USD/month |
| Azure Event Grid (one staging copy) | Minimum primary CPU | 2 | vCPU |
| Azure Event Grid (one staging copy) | Minimum primary RAM | 8 | GiB |
| Azure Event Grid (one staging copy) | Minimum primary disk | 100 | GiB |
| Azure Event Grid (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Azure Event Grid (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| Azure Event Grid (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Azure Event Grid (one staging copy) | Planning peak / mean work | 2 | multiplier |
| Azure Event Grid (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| Azure Event Grid (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| Azure Event Grid (one staging copy) | Planning disk utilization | 0.8 | fraction |
| Azure Event Grid (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| Azure Event Grid (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Azure Event Grid (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Azure Event Grid (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Azure Event Grid (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Azure Event Grid (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Azure Event Grid (two staging copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Azure Event Grid (two staging copies) | Representative event size | 1024 | bytes |
| Azure Event Grid (two staging copies) | Rules evaluated per event | 10 | rules |
| Azure Event Grid (two staging copies) | Point-read work equivalent per rule | 0.1 | operations |
| Azure Event Grid (two staging copies) | Matched targets per event | 1 | targets |
| Azure Event Grid (two staging copies) | Delivery attempts | 1 | attempts/target |
| Azure Event Grid (two staging copies) | Outbox residence window | 60 | seconds |
| Azure Event Grid (two staging copies) | Target price guess · read | 0 | USD/read |
| Azure Event Grid (two staging copies) | Target price guess · write | 0 | USD/write |
| Azure Event Grid (two staging copies) | Target list price · provider operation | 0.0000006 | USD/provider operation |
| Azure Event Grid (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Azure Event Grid (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Azure Event Grid (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Azure Event Grid (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| Azure Event Grid (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Azure Event Grid (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Azure Event Grid (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Azure Event Grid (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Azure Event Grid (two staging copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Azure Event Grid (two staging copies) | Target price guess · input token | 0 | USD/input token |
| Azure Event Grid (two staging copies) | Target price guess · output token | 0 | USD/output token |
| Azure Event Grid (two staging copies) | Included before billing · provider operation | 100000 | provider operation |
| Azure Event Grid (two staging copies) | Target monthly base charge | 0 | USD/month |
| Azure Event Grid (two staging copies) | Approximate target service minimum | 0 | USD/month |
| Azure Event Grid (two staging copies) | Minimum primary CPU | 2 | vCPU |
| Azure Event Grid (two staging copies) | Minimum primary RAM | 8 | GiB |
| Azure Event Grid (two staging copies) | Minimum primary disk | 100 | GiB |
| Azure Event Grid (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Azure Event Grid (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| Azure Event Grid (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Azure Event Grid (two staging copies) | Planning peak / mean work | 2 | multiplier |
| Azure Event Grid (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| Azure Event Grid (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| Azure Event Grid (two staging copies) | Planning disk utilization | 0.8 | fraction |
| Azure Event Grid (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| Azure Event Grid (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Azure Event Grid (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Azure Event Grid (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Azure Event Grid (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Azure Event Grid (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → East US, 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Native/deployment comparison scope: This mapping uses native Event Grid delivery rather than an EventBridge API endpoint. Event delivery follows the target service's behavior; there is no EventBridge adapter request to measure.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Azure Event Grid Basic (custom and system topics, domains) bills operations after 100,000 free a month: published events, advanced-filter matches and delivery attempts, each per 64 KB of payload. The family's managed operations approximate publications plus delivery work. Event Grid namespaces (Standard tier) instead bill USD 0.04 per throughput-unit hour plus event and MQTT operations.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-656ce2b6cd8a54740cc930f862ce2db533e713fa` / `2026-10-22.planning.2`. Curve: `workload-1`.

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

## EventBridge → Cloud SQL for PostgreSQL

Origin API: `aws::1.0.0::events`. Target backend: `google::1.0.0::cloudsql::postgresql`.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: us-central1; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/176f54c9e0b11c1212731272abf505deaa8c7894159a0bdf27ad68921407d3f0-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/a61342b239b047f3c395b8bb59251ca0a4b8ab5f3b00b175a3d227e631d69025-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.

| Custom event units (per second) | EventBridge | Target scenario | Cloud SQL for PostgreSQL | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | Cloud SQL for PostgreSQL (one copy) | 118.178 | 118.178 |
| 0 | 0 | Cloud SQL for PostgreSQL (two copies) | 236.356 | 236.356 |
| 1 | 2.628 | Cloud SQL for PostgreSQL (one copy) | 118.178 | 115.55 |
| 1 | 2.628 | Cloud SQL for PostgreSQL (two copies) | 236.356 | 233.728 |
| 10 | 26.28 | Cloud SQL for PostgreSQL (one copy) | 118.178 | 91.898 |
| 10 | 26.28 | Cloud SQL for PostgreSQL (two copies) | 236.356 | 210.076 |
| 100 | 262.8 | Cloud SQL for PostgreSQL (one copy) | 118.178 | -144.622 |
| 100 | 262.8 | Cloud SQL for PostgreSQL (two copies) | 236.356 | -26.444 |
| 1000 | 2628 | Cloud SQL for PostgreSQL (one copy) | 826.424 | -1801.576 |
| 1000 | 2628 | Cloud SQL for PostgreSQL (two copies) | 1652.848 | -975.152 |
| 10000 | 26280 | Cloud SQL for PostgreSQL (one copy) | 4873.544 | -21406.456 |
| 10000 | 26280 | Cloud SQL for PostgreSQL (two copies) | 9747.088 | -16532.912 |

**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 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Cloud SQL for PostgreSQL (one copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Cloud SQL for PostgreSQL (two copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Cloud SQL for PostgreSQL (one copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Cloud SQL for PostgreSQL (one copy) | Representative event size | 1024 | bytes |
| Cloud SQL for PostgreSQL (one copy) | Rules evaluated per event | 10 | rules |
| Cloud SQL for PostgreSQL (one copy) | Point-read work equivalent per rule | 0.1 | operations |
| Cloud SQL for PostgreSQL (one copy) | Matched targets per event | 1 | targets |
| Cloud SQL for PostgreSQL (one copy) | Delivery attempts | 1 | attempts/target |
| Cloud SQL for PostgreSQL (one copy) | Outbox residence window | 60 | seconds |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · read | 0 | USD/read |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · write | 0 | USD/write |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Cloud SQL for PostgreSQL (one copy) | Target list price · GiB-month | 0.17 | USD/GiB-month |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Cloud SQL for PostgreSQL (one copy) | Target list price · network GiB | 0.19 | USD/network GiB |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Cloud SQL for PostgreSQL (one copy) | Target list price · vCPU-hour | 0.0413 | USD/vCPU-hour |
| Cloud SQL for PostgreSQL (one copy) | Target list price · GiB-hour | 0.007 | USD/GiB-hour |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · input token | 0 | USD/input token |
| Cloud SQL for PostgreSQL (one copy) | Target price guess · output token | 0 | USD/output token |
| Cloud SQL for PostgreSQL (one copy) | Target monthly base charge | 0 | USD/month |
| Cloud SQL for PostgreSQL (one copy) | Target service minimum | 9.365 | USD/month |
| Cloud SQL for PostgreSQL (one copy) | Minimum primary CPU | 2 | vCPU |
| Cloud SQL for PostgreSQL (one copy) | Minimum primary RAM | 8 | GiB |
| Cloud SQL for PostgreSQL (one copy) | Minimum primary disk | 100 | GiB |
| Cloud SQL for PostgreSQL (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Cloud SQL for PostgreSQL (one copy) | Allocated share of provisioned cost | 1 | fraction |
| Cloud SQL for PostgreSQL (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Cloud SQL for PostgreSQL (one copy) | Planning peak / mean work | 2 | multiplier |
| Cloud SQL for PostgreSQL (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| Cloud SQL for PostgreSQL (one copy) | Resident state reserved in RAM | 0.1 | fraction |
| Cloud SQL for PostgreSQL (one copy) | Planning disk utilization | 0.8 | fraction |
| Cloud SQL for PostgreSQL (one copy) | Maintenance and log disk reserve | 20 | GiB |
| Cloud SQL for PostgreSQL (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Cloud SQL for PostgreSQL (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Cloud SQL for PostgreSQL (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Cloud SQL for PostgreSQL (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Cloud SQL for PostgreSQL (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Cloud SQL for PostgreSQL (two copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Cloud SQL for PostgreSQL (two copies) | Representative event size | 1024 | bytes |
| Cloud SQL for PostgreSQL (two copies) | Rules evaluated per event | 10 | rules |
| Cloud SQL for PostgreSQL (two copies) | Point-read work equivalent per rule | 0.1 | operations |
| Cloud SQL for PostgreSQL (two copies) | Matched targets per event | 1 | targets |
| Cloud SQL for PostgreSQL (two copies) | Delivery attempts | 1 | attempts/target |
| Cloud SQL for PostgreSQL (two copies) | Outbox residence window | 60 | seconds |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · read | 0 | USD/read |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · write | 0 | USD/write |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Cloud SQL for PostgreSQL (two copies) | Target list price · GiB-month | 0.17 | USD/GiB-month |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Cloud SQL for PostgreSQL (two copies) | Target list price · network GiB | 0.19 | USD/network GiB |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Cloud SQL for PostgreSQL (two copies) | Target list price · vCPU-hour | 0.0413 | USD/vCPU-hour |
| Cloud SQL for PostgreSQL (two copies) | Target list price · GiB-hour | 0.007 | USD/GiB-hour |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · input token | 0 | USD/input token |
| Cloud SQL for PostgreSQL (two copies) | Target price guess · output token | 0 | USD/output token |
| Cloud SQL for PostgreSQL (two copies) | Target monthly base charge | 0 | USD/month |
| Cloud SQL for PostgreSQL (two copies) | Target service minimum | 9.365 | USD/month |
| Cloud SQL for PostgreSQL (two copies) | Minimum primary CPU | 2 | vCPU |
| Cloud SQL for PostgreSQL (two copies) | Minimum primary RAM | 8 | GiB |
| Cloud SQL for PostgreSQL (two copies) | Minimum primary disk | 100 | GiB |
| Cloud SQL for PostgreSQL (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Cloud SQL for PostgreSQL (two copies) | Allocated share of provisioned cost | 1 | fraction |
| Cloud SQL for PostgreSQL (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Cloud SQL for PostgreSQL (two copies) | Planning peak / mean work | 2 | multiplier |
| Cloud SQL for PostgreSQL (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| Cloud SQL for PostgreSQL (two copies) | Resident state reserved in RAM | 0.1 | fraction |
| Cloud SQL for PostgreSQL (two copies) | Planning disk utilization | 0.8 | fraction |
| Cloud SQL for PostgreSQL (two copies) | Maintenance and log disk reserve | 20 | GiB |
| Cloud SQL for PostgreSQL (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Cloud SQL for PostgreSQL (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Cloud SQL for PostgreSQL (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Cloud SQL for PostgreSQL (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Cloud SQL for PostgreSQL (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Cloud SQL Enterprise edition (PostgreSQL) publishes separate vCPU, memory and SSD prices for zonal instances; a high-availability (regional) instance bills exactly twice each, which the standby copy reproduces. Enterprise Plus, committed-use discounts, backups (USD 0.08 per GiB-month) and idle IPv4 addresses (0.01 per hour) are not selected.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Cloud SQL pricing: [https://cloud.google.com/sql/pricing](https://cloud.google.com/sql/pricing)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-c010cda26af1a7ba1dd7b53dd4a4725b1efe0c50` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [AWS Price List API, AWSEvents offer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json), [Cloud SQL pricing](https://cloud.google.com/sql/pricing).

## EventBridge → Container Apps

Origin API: `aws::1.0.0::events`. Target backend: `azure::1.0.0::container-apps`.

**Native or deployment mapping.** Scheduled jobs run as Container Apps jobs. This mapping does not expose an event bus or a PutEvents adapter endpoint; job execution is not fabric request latency. Cost estimates describe the selected service resources; operation coverage remains separate.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: East US; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/08e41cb1e0c8b776c8f0f31d225503e0b1ba5335b69910d85ca4e1540b2bf718-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/0f852a57c25cf19a2cd3598e231f48beca3a0e668d8d6a9566f027accf1dd3f1-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.

| Custom event units (per second) | EventBridge | Target scenario | Container Apps | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | Container Apps (one staging copy) | 118.178 | 118.178 |
| 0 | 0 | Container Apps (two staging copies) | 236.356 | 236.356 |
| 1 | 2.628 | Container Apps (one staging copy) | 119.4804 | 116.8524 |
| 1 | 2.628 | Container Apps (two staging copies) | 237.6584 | 235.0304 |
| 10 | 26.28 | Container Apps (one staging copy) | 138.402 | 112.122 |
| 10 | 26.28 | Container Apps (two staging copies) | 256.58 | 230.3 |
| 100 | 262.8 | Container Apps (one staging copy) | 327.618 | 64.818 |
| 100 | 262.8 | Container Apps (two staging copies) | 445.796 | 182.996 |
| 1000 | 2628 | Container Apps (one staging copy) | 2928.024 | 300.024 |
| 1000 | 2628 | Container Apps (two staging copies) | 3754.448 | 1126.448 |
| 10000 | 26280 | Container Apps (one staging copy) | 25896.744 | -383.256 |
| 10000 | 26280 | Container Apps (two staging copies) | 30770.288 | 4490.288 |

**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 per second / Container Apps (one staging copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / Container Apps (two staging copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Container Apps (one staging copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Container Apps (two staging copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Container Apps (one staging copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Container Apps (two staging copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Container Apps (one staging copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Container Apps (two staging copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Container Apps (one staging copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Container Apps (two staging copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Container Apps (one staging copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Container Apps (two staging copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Container Apps (one staging copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Container Apps (one staging copy) | Representative event size | 1024 | bytes |
| Container Apps (one staging copy) | Rules evaluated per event | 10 | rules |
| Container Apps (one staging copy) | Point-read work equivalent per rule | 0.1 | operations |
| Container Apps (one staging copy) | Matched targets per event | 1 | targets |
| Container Apps (one staging copy) | Delivery attempts | 1 | attempts/target |
| Container Apps (one staging copy) | Outbox residence window | 60 | seconds |
| Container Apps (one staging copy) | Target price guess · read | 0 | USD/read |
| Container Apps (one staging copy) | Target price guess · write | 0 | USD/write |
| Container Apps (one staging copy) | Target list price · provider operation | 0.0000004 | USD/provider operation |
| Container Apps (one staging copy) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Container Apps (one staging copy) | Target price guess · published GiB | 0 | USD/published GiB |
| Container Apps (one staging copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Container Apps (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| Container Apps (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Container Apps (one staging copy) | Target list price · vCPU-hour | 0.0864 | USD/vCPU-hour |
| Container Apps (one staging copy) | Target list price · GiB-hour | 0.0108 | USD/GiB-hour |
| Container Apps (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Container Apps (one staging copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Container Apps (one staging copy) | Target price guess · input token | 0 | USD/input token |
| Container Apps (one staging copy) | Target price guess · output token | 0 | USD/output token |
| Container Apps (one staging copy) | Included before billing · vCPU-hour | 50 | vCPU-hour |
| Container Apps (one staging copy) | Included before billing · GiB-hour | 100 | GiB-hour |
| Container Apps (one staging copy) | Included before billing · provider operation | 2000000 | provider operation |
| Container Apps (one staging copy) | Target monthly base charge | 0 | USD/month |
| Container Apps (one staging copy) | Approximate target service minimum | 0 | USD/month |
| Container Apps (one staging copy) | Minimum primary CPU | 2 | vCPU |
| Container Apps (one staging copy) | Minimum primary RAM | 8 | GiB |
| Container Apps (one staging copy) | Minimum primary disk | 100 | GiB |
| Container Apps (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Container Apps (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| Container Apps (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Container Apps (one staging copy) | Planning peak / mean work | 2 | multiplier |
| Container Apps (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| Container Apps (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| Container Apps (one staging copy) | Planning disk utilization | 0.8 | fraction |
| Container Apps (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| Container Apps (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Container Apps (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Container Apps (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Container Apps (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Container Apps (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Container Apps (two staging copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Container Apps (two staging copies) | Representative event size | 1024 | bytes |
| Container Apps (two staging copies) | Rules evaluated per event | 10 | rules |
| Container Apps (two staging copies) | Point-read work equivalent per rule | 0.1 | operations |
| Container Apps (two staging copies) | Matched targets per event | 1 | targets |
| Container Apps (two staging copies) | Delivery attempts | 1 | attempts/target |
| Container Apps (two staging copies) | Outbox residence window | 60 | seconds |
| Container Apps (two staging copies) | Target price guess · read | 0 | USD/read |
| Container Apps (two staging copies) | Target price guess · write | 0 | USD/write |
| Container Apps (two staging copies) | Target list price · provider operation | 0.0000004 | USD/provider operation |
| Container Apps (two staging copies) | Target price guess · GiB-month | 0 | USD/GiB-month |
| Container Apps (two staging copies) | Target price guess · published GiB | 0 | USD/published GiB |
| Container Apps (two staging copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| Container Apps (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| Container Apps (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Container Apps (two staging copies) | Target list price · vCPU-hour | 0.0864 | USD/vCPU-hour |
| Container Apps (two staging copies) | Target list price · GiB-hour | 0.0108 | USD/GiB-hour |
| Container Apps (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Container Apps (two staging copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Container Apps (two staging copies) | Target price guess · input token | 0 | USD/input token |
| Container Apps (two staging copies) | Target price guess · output token | 0 | USD/output token |
| Container Apps (two staging copies) | Included before billing · vCPU-hour | 50 | vCPU-hour |
| Container Apps (two staging copies) | Included before billing · GiB-hour | 100 | GiB-hour |
| Container Apps (two staging copies) | Included before billing · provider operation | 2000000 | provider operation |
| Container Apps (two staging copies) | Target monthly base charge | 0 | USD/month |
| Container Apps (two staging copies) | Approximate target service minimum | 0 | USD/month |
| Container Apps (two staging copies) | Minimum primary CPU | 2 | vCPU |
| Container Apps (two staging copies) | Minimum primary RAM | 8 | GiB |
| Container Apps (two staging copies) | Minimum primary disk | 100 | GiB |
| Container Apps (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Container Apps (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| Container Apps (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Container Apps (two staging copies) | Planning peak / mean work | 2 | multiplier |
| Container Apps (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| Container Apps (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| Container Apps (two staging copies) | Planning disk utilization | 0.8 | fraction |
| Container Apps (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| Container Apps (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Container Apps (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Container Apps (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Container Apps (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Container Apps (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → East US, 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Native/deployment comparison scope: Scheduled jobs run as Container Apps jobs. This mapping does not expose an event bus or a PutEvents adapter endpoint; job execution is not fabric request latency.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Azure Container Apps (Consumption plan) bills active vCPU-seconds, GiB-seconds and requests after a monthly free grant per subscription. Idle minimum replicas bill USD 0.000003 per vCPU-second and are not inferred; TCP apps bill per connection.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)
* Azure Container Apps pricing: [https://azure.microsoft.com/en-us/pricing/details/container-apps/](https://azure.microsoft.com/en-us/pricing/details/container-apps/)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-31f645677d120d117c82ffa4430248237b09c947` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [AWS Price List API, AWSEvents offer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json), [Azure Retail Prices API](https://prices.azure.com/api/retail/prices), [Azure Container Apps pricing](https://azure.microsoft.com/en-us/pricing/details/container-apps/).

## EventBridge → PostgreSQL

Origin API: `aws::1.0.0::events`. Target backend: `postgres::1.0.0::database`.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: us-central1; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/386b83b8741e8d44b19d426e224944c5a53379ef935ec6f74f207f9da8373551-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/fccb1639cb6b7498b0aef3dcbe56f4edad601f99f5549efcfcb2d9b711739d86-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.

| Custom event units (per second) | EventBridge | Target scenario | PostgreSQL | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | PostgreSQL (one copy) | 80.89614 | 80.89614 |
| 0 | 0 | PostgreSQL (two copies) | 161.79228 | 161.79228 |
| 1 | 2.628 | PostgreSQL (one copy) | 80.89614 | 78.26814 |
| 1 | 2.628 | PostgreSQL (two copies) | 161.79228 | 159.16428 |
| 10 | 26.28 | PostgreSQL (one copy) | 80.89614 | 54.61614 |
| 10 | 26.28 | PostgreSQL (two copies) | 161.79228 | 135.51228 |
| 100 | 262.8 | PostgreSQL (one copy) | 80.89614 | -181.90386 |
| 100 | 262.8 | PostgreSQL (two copies) | 161.79228 | -101.00772 |
| 1000 | 2628 | PostgreSQL (one copy) | 577.16912 | -2050.83088 |
| 1000 | 2628 | PostgreSQL (two copies) | 1154.33824 | -1473.66176 |
| 10000 | 26280 | PostgreSQL (one copy) | 3413.01472 | -22866.98528 |
| 10000 | 26280 | PostgreSQL (two copies) | 6826.02944 | -19453.97056 |

**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 per second / PostgreSQL (one copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / PostgreSQL (two copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / PostgreSQL (one copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / PostgreSQL (two copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / PostgreSQL (one copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / PostgreSQL (two copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / PostgreSQL (one copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / PostgreSQL (two copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / PostgreSQL (one copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / PostgreSQL (two copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / PostgreSQL (one copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / PostgreSQL (two copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| PostgreSQL (one copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| PostgreSQL (one copy) | Representative event size | 1024 | bytes |
| PostgreSQL (one copy) | Rules evaluated per event | 10 | rules |
| PostgreSQL (one copy) | Point-read work equivalent per rule | 0.1 | operations |
| PostgreSQL (one copy) | Matched targets per event | 1 | targets |
| PostgreSQL (one copy) | Delivery attempts | 1 | attempts/target |
| PostgreSQL (one copy) | Outbox residence window | 60 | seconds |
| PostgreSQL (one copy) | Target price guess · read | 0 | USD/read |
| PostgreSQL (one copy) | Target price guess · write | 0 | USD/write |
| PostgreSQL (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| PostgreSQL (one copy) | Target list price · GiB-month | 0.1 | USD/GiB-month |
| PostgreSQL (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| PostgreSQL (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| PostgreSQL (one copy) | Target list price · network GiB | 0.12 | USD/network GiB |
| PostgreSQL (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| PostgreSQL (one copy) | Target list price · vCPU-hour | 0.031611 | USD/vCPU-hour |
| PostgreSQL (one copy) | Target list price · GiB-hour | 0.004237 | USD/GiB-hour |
| PostgreSQL (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| PostgreSQL (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| PostgreSQL (one copy) | Target price guess · input token | 0 | USD/input token |
| PostgreSQL (one copy) | Target price guess · output token | 0 | USD/output token |
| PostgreSQL (one copy) | Target monthly base charge | 0 | USD/month |
| PostgreSQL (one copy) | Approximate target service minimum | 0 | USD/month |
| PostgreSQL (one copy) | Minimum primary CPU | 2 | vCPU |
| PostgreSQL (one copy) | Minimum primary RAM | 8 | GiB |
| PostgreSQL (one copy) | Minimum primary disk | 100 | GiB |
| PostgreSQL (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| PostgreSQL (one copy) | Allocated share of provisioned cost | 1 | fraction |
| PostgreSQL (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| PostgreSQL (one copy) | Planning peak / mean work | 2 | multiplier |
| PostgreSQL (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| PostgreSQL (one copy) | Resident state reserved in RAM | 0.1 | fraction |
| PostgreSQL (one copy) | Planning disk utilization | 0.8 | fraction |
| PostgreSQL (one copy) | Maintenance and log disk reserve | 20 | GiB |
| PostgreSQL (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| PostgreSQL (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| PostgreSQL (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| PostgreSQL (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| PostgreSQL (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| PostgreSQL (two copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| PostgreSQL (two copies) | Representative event size | 1024 | bytes |
| PostgreSQL (two copies) | Rules evaluated per event | 10 | rules |
| PostgreSQL (two copies) | Point-read work equivalent per rule | 0.1 | operations |
| PostgreSQL (two copies) | Matched targets per event | 1 | targets |
| PostgreSQL (two copies) | Delivery attempts | 1 | attempts/target |
| PostgreSQL (two copies) | Outbox residence window | 60 | seconds |
| PostgreSQL (two copies) | Target price guess · read | 0 | USD/read |
| PostgreSQL (two copies) | Target price guess · write | 0 | USD/write |
| PostgreSQL (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| PostgreSQL (two copies) | Target list price · GiB-month | 0.1 | USD/GiB-month |
| PostgreSQL (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| PostgreSQL (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| PostgreSQL (two copies) | Target list price · network GiB | 0.12 | USD/network GiB |
| PostgreSQL (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| PostgreSQL (two copies) | Target list price · vCPU-hour | 0.031611 | USD/vCPU-hour |
| PostgreSQL (two copies) | Target list price · GiB-hour | 0.004237 | USD/GiB-hour |
| PostgreSQL (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| PostgreSQL (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| PostgreSQL (two copies) | Target price guess · input token | 0 | USD/input token |
| PostgreSQL (two copies) | Target price guess · output token | 0 | USD/output token |
| PostgreSQL (two copies) | Target monthly base charge | 0 | USD/month |
| PostgreSQL (two copies) | Approximate target service minimum | 0 | USD/month |
| PostgreSQL (two copies) | Minimum primary CPU | 2 | vCPU |
| PostgreSQL (two copies) | Minimum primary RAM | 8 | GiB |
| PostgreSQL (two copies) | Minimum primary disk | 100 | GiB |
| PostgreSQL (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| PostgreSQL (two copies) | Allocated share of provisioned cost | 1 | fraction |
| PostgreSQL (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| PostgreSQL (two copies) | Planning peak / mean work | 2 | multiplier |
| PostgreSQL (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| PostgreSQL (two copies) | Resident state reserved in RAM | 0.1 | fraction |
| PostgreSQL (two copies) | Planning disk utilization | 0.8 | fraction |
| PostgreSQL (two copies) | Maintenance and log disk reserve | 20 | GiB |
| PostgreSQL (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| PostgreSQL (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| PostgreSQL (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| PostgreSQL (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| PostgreSQL (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Self-hosted target: PostgreSQL (PostgreSQL License, [https://www.postgresql.org/about/licence/](https://www.postgresql.org/about/licence/)). Selected CPU, RAM and physical disk allocation grow with workload; no per-operation price is assumed. No vendor tariff: the target runs on the customer's Kubernetes nodes, so CPU, RAM and disk bill at the Kubernetes node reference rates, Compute Engine N2 in us-central1 (USD 0.031611/vCPU-hour, 0.004237/GiB-hour) with pd-balanced disk (0.10/GiB-month) and Premium Tier egress. The cost-optimized E2 series lists 0.02181159/vCPU-hour and 0.00292353/GiB-hour; AWS m6i/r6i and Azure D2s v5/E2s v5 both decompose to 0.033/vCPU-hour and 0.00375/GiB-hour. Requested CPU and RAM are billed; node bin-packing waste, system reservations and the cluster control-plane fee are not.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Compute Engine general-purpose machine pricing: [https://cloud.google.com/products/compute/pricing/general-purpose](https://cloud.google.com/products/compute/pricing/general-purpose)
* Disk and image pricing: [https://cloud.google.com/compute/disks-image-pricing](https://cloud.google.com/compute/disks-image-pricing)
* Network pricing: [https://cloud.google.com/vpc/network-pricing](https://cloud.google.com/vpc/network-pricing)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-1b3d195812060b0f8a3f49a7665e8f1d793b512b` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [AWS Price List API, AWSEvents offer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json), [Compute Engine general-purpose machine pricing](https://cloud.google.com/products/compute/pricing/general-purpose), [Disk and image pricing](https://cloud.google.com/compute/disks-image-pricing), [Network pricing](https://cloud.google.com/vpc/network-pricing).

## EventBridge → PostgreSQL Flexible Server

Origin API: `aws::1.0.0::events`. Target backend: `azure::1.0.0::postgresql::flexible`.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: eastus; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/879c57ce5537af7171c299878dd428867b55257606b408dfdfa173f2bffc484d-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/05ac1b0d8fab4cf6e939d52ed6dce2843bd603d14a65452e59d4565f593a1f35-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.

| Custom event units (per second) | EventBridge | Target scenario | PostgreSQL Flexible Server | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | PostgreSQL Flexible Server (one copy) | 141.44 | 141.44 |
| 0 | 0 | PostgreSQL Flexible Server (two copies) | 282.88 | 282.88 |
| 1 | 2.628 | PostgreSQL Flexible Server (one copy) | 141.44 | 138.812 |
| 1 | 2.628 | PostgreSQL Flexible Server (two copies) | 282.88 | 280.252 |
| 10 | 26.28 | PostgreSQL Flexible Server (one copy) | 141.44 | 115.16 |
| 10 | 26.28 | PostgreSQL Flexible Server (two copies) | 282.88 | 256.6 |
| 100 | 262.8 | PostgreSQL Flexible Server (one copy) | 141.44 | -121.36 |
| 100 | 262.8 | PostgreSQL Flexible Server (two copies) | 282.88 | 20.08 |
| 1000 | 2628 | PostgreSQL Flexible Server (one copy) | 1051.02 | -1576.98 |
| 1000 | 2628 | PostgreSQL Flexible Server (two copies) | 2102.04 | -525.96 |
| 10000 | 26280 | PostgreSQL Flexible Server (one copy) | 6248.62 | -20031.38 |
| 10000 | 26280 | PostgreSQL Flexible Server (two copies) | 12497.24 | -13782.76 |

**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 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / PostgreSQL Flexible Server (one copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / PostgreSQL Flexible Server (two copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| PostgreSQL Flexible Server (one copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| PostgreSQL Flexible Server (one copy) | Representative event size | 1024 | bytes |
| PostgreSQL Flexible Server (one copy) | Rules evaluated per event | 10 | rules |
| PostgreSQL Flexible Server (one copy) | Point-read work equivalent per rule | 0.1 | operations |
| PostgreSQL Flexible Server (one copy) | Matched targets per event | 1 | targets |
| PostgreSQL Flexible Server (one copy) | Delivery attempts | 1 | attempts/target |
| PostgreSQL Flexible Server (one copy) | Outbox residence window | 60 | seconds |
| PostgreSQL Flexible Server (one copy) | Target price guess · read | 0 | USD/read |
| PostgreSQL Flexible Server (one copy) | Target price guess · write | 0 | USD/write |
| PostgreSQL Flexible Server (one copy) | Target price guess · provider operation | 0 | USD/provider operation |
| PostgreSQL Flexible Server (one copy) | Target list price · GiB-month | 0.115 | USD/GiB-month |
| PostgreSQL Flexible Server (one copy) | Target price guess · published GiB | 0 | USD/published GiB |
| PostgreSQL Flexible Server (one copy) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| PostgreSQL Flexible Server (one copy) | Target list price · network GiB | 0.087 | USD/network GiB |
| PostgreSQL Flexible Server (one copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| PostgreSQL Flexible Server (one copy) | Target list price · vCPU-hour | 0.053 | USD/vCPU-hour |
| PostgreSQL Flexible Server (one copy) | Target list price · GiB-hour | 0.009 | USD/GiB-hour |
| PostgreSQL Flexible Server (one copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| PostgreSQL Flexible Server (one copy) | Target price guess · resource-month | 0 | USD/resource-month |
| PostgreSQL Flexible Server (one copy) | Target price guess · input token | 0 | USD/input token |
| PostgreSQL Flexible Server (one copy) | Target price guess · output token | 0 | USD/output token |
| PostgreSQL Flexible Server (one copy) | Target monthly base charge | 0 | USD/month |
| PostgreSQL Flexible Server (one copy) | Target service minimum | 16.09 | USD/month |
| PostgreSQL Flexible Server (one copy) | Minimum primary CPU | 2 | vCPU |
| PostgreSQL Flexible Server (one copy) | Minimum primary RAM | 8 | GiB |
| PostgreSQL Flexible Server (one copy) | Minimum primary disk | 100 | GiB |
| PostgreSQL Flexible Server (one copy) | Additional full-price standby copy | 0 | 0 or 1 |
| PostgreSQL Flexible Server (one copy) | Allocated share of provisioned cost | 1 | fraction |
| PostgreSQL Flexible Server (one copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| PostgreSQL Flexible Server (one copy) | Planning peak / mean work | 2 | multiplier |
| PostgreSQL Flexible Server (one copy) | Planning primary CPU utilization | 0.7 | fraction |
| PostgreSQL Flexible Server (one copy) | Resident state reserved in RAM | 0.1 | fraction |
| PostgreSQL Flexible Server (one copy) | Planning disk utilization | 0.8 | fraction |
| PostgreSQL Flexible Server (one copy) | Maintenance and log disk reserve | 20 | GiB |
| PostgreSQL Flexible Server (one copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| PostgreSQL Flexible Server (one copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| PostgreSQL Flexible Server (one copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| PostgreSQL Flexible Server (one copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| PostgreSQL Flexible Server (one copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| PostgreSQL Flexible Server (two copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| PostgreSQL Flexible Server (two copies) | Representative event size | 1024 | bytes |
| PostgreSQL Flexible Server (two copies) | Rules evaluated per event | 10 | rules |
| PostgreSQL Flexible Server (two copies) | Point-read work equivalent per rule | 0.1 | operations |
| PostgreSQL Flexible Server (two copies) | Matched targets per event | 1 | targets |
| PostgreSQL Flexible Server (two copies) | Delivery attempts | 1 | attempts/target |
| PostgreSQL Flexible Server (two copies) | Outbox residence window | 60 | seconds |
| PostgreSQL Flexible Server (two copies) | Target price guess · read | 0 | USD/read |
| PostgreSQL Flexible Server (two copies) | Target price guess · write | 0 | USD/write |
| PostgreSQL Flexible Server (two copies) | Target price guess · provider operation | 0 | USD/provider operation |
| PostgreSQL Flexible Server (two copies) | Target list price · GiB-month | 0.115 | USD/GiB-month |
| PostgreSQL Flexible Server (two copies) | Target price guess · published GiB | 0 | USD/published GiB |
| PostgreSQL Flexible Server (two copies) | Target price guess · delivered GiB | 0 | USD/delivered GiB |
| PostgreSQL Flexible Server (two copies) | Target list price · network GiB | 0.087 | USD/network GiB |
| PostgreSQL Flexible Server (two copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| PostgreSQL Flexible Server (two copies) | Target list price · vCPU-hour | 0.053 | USD/vCPU-hour |
| PostgreSQL Flexible Server (two copies) | Target list price · GiB-hour | 0.009 | USD/GiB-hour |
| PostgreSQL Flexible Server (two copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| PostgreSQL Flexible Server (two copies) | Target price guess · resource-month | 0 | USD/resource-month |
| PostgreSQL Flexible Server (two copies) | Target price guess · input token | 0 | USD/input token |
| PostgreSQL Flexible Server (two copies) | Target price guess · output token | 0 | USD/output token |
| PostgreSQL Flexible Server (two copies) | Target monthly base charge | 0 | USD/month |
| PostgreSQL Flexible Server (two copies) | Target service minimum | 16.09 | USD/month |
| PostgreSQL Flexible Server (two copies) | Minimum primary CPU | 2 | vCPU |
| PostgreSQL Flexible Server (two copies) | Minimum primary RAM | 8 | GiB |
| PostgreSQL Flexible Server (two copies) | Minimum primary disk | 100 | GiB |
| PostgreSQL Flexible Server (two copies) | Additional full-price standby copy | 1 | 0 or 1 |
| PostgreSQL Flexible Server (two copies) | Allocated share of provisioned cost | 1 | fraction |
| PostgreSQL Flexible Server (two copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| PostgreSQL Flexible Server (two copies) | Planning peak / mean work | 2 | multiplier |
| PostgreSQL Flexible Server (two copies) | Planning primary CPU utilization | 0.7 | fraction |
| PostgreSQL Flexible Server (two copies) | Resident state reserved in RAM | 0.1 | fraction |
| PostgreSQL Flexible Server (two copies) | Planning disk utilization | 0.8 | fraction |
| PostgreSQL Flexible Server (two copies) | Maintenance and log disk reserve | 20 | GiB |
| PostgreSQL Flexible Server (two copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| PostgreSQL Flexible Server (two copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| PostgreSQL Flexible Server (two copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| PostgreSQL Flexible Server (two copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| PostgreSQL Flexible Server (two copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → eastus, 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Azure Database for PostgreSQL Flexible Server bills vCores with a fixed memory ratio per series; the vCPU and memory rates decompose the General Purpose and Memory Optimized v5 prices. High availability bills the standby's compute and storage as a second copy. The minimum is the smallest Burstable server, which does not support high availability; the smallest General Purpose server (2 vCores) costs USD 133.62 per month. Additional IOPS, backup storage and reserved capacity are not selected.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Azure Retail Prices API: [https://prices.azure.com/api/retail/prices](https://prices.azure.com/api/retail/prices)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-b861f9005b6aff9fc3cfc370aadd088e6a0c9776` / `2026-10-22.planning.2`. Curve: `workload-1`.

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

## EventBridge → Pub/Sub

Origin API: `aws::1.0.0::events`. Target backend: `google::1.0.0::pubsub`.

**Native or deployment mapping.** This mapping uses native Pub/Sub delivery rather than an EventBridge API endpoint. Event delivery follows the target service's behavior; there is no EventBridge adapter request to measure. Cost estimates describe the selected service resources; operation coverage remains separate.

### EventBridge · Custom event units

Estimated monthly service charges by Custom event units. Adapter hosting and Tensor9 fees are excluded. Source: us-east-1; target: us-central1; currency: USD.

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/28b791583c992d53930939c74029bf76798585304a01d99fd373b8b30d1b6fda-light.svg)

![EventBridge · Custom event units: monthly service charges by Custom event units. Exact values are in the following table.](/images/diagrams/service-cost/42d07b3dbc9b7eb516623e782f3dcea077d41d624269395f6175eb4371c8de58-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.

| Custom event units (per second) | EventBridge | Target scenario | Pub/Sub | Difference |
| -: | -: | - | -: | -: |
| 0 | 0 | Pub/Sub (one staging copy) | 118.178 | 118.178 |
| 0 | 0 | Pub/Sub (two staging copies) | 236.356 | 236.356 |
| 1 | 2.628 | Pub/Sub (one staging copy) | 118.373832157135009765625 | 115.745832157135009765625 |
| 1 | 2.628 | Pub/Sub (two staging copies) | 236.551832157135009765625 | 233.923832157135009765625 |
| 10 | 26.28 | Pub/Sub (one staging copy) | 120.13632157135009765625 | 93.85632157135009765625 |
| 10 | 26.28 | Pub/Sub (two staging copies) | 238.31432157135009765625 | 212.03432157135009765625 |
| 100 | 262.8 | Pub/Sub (one staging copy) | 137.7612157135009765625 | -125.0387842864990234375 |
| 100 | 262.8 | Pub/Sub (two staging copies) | 255.9392157135009765625 | -6.8607842864990234375 |
| 1000 | 2628 | Pub/Sub (one staging copy) | 1022.256157135009765625 | -1605.743842864990234375 |
| 1000 | 2628 | Pub/Sub (two staging copies) | 1848.680157135009765625 | -779.319842864990234375 |
| 10000 | 26280 | Pub/Sub (one staging copy) | 6831.86557135009765625 | -19448.13442864990234375 |
| 10000 | 26280 | Pub/Sub (two staging copies) | 11705.40957135009765625 | -14574.59042864990234375 |

**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 per second / Pub/Sub (one staging copy) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 0 per second / Pub/Sub (two staging copies) | PlanningAssumption | 0 / 0 | 0 | 2 | 8 | 100 | 0 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Pub/Sub (one staging copy) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1 per second / Pub/Sub (two staging copies) | PlanningAssumption | 5 / 10 | 0.009523809523809523809523809523809524 | 2 | 8 | 100 | 0.00011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Pub/Sub (one staging copy) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10 per second / Pub/Sub (two staging copies) | PlanningAssumption | 50 / 100 | 0.09523809523809523809523809523809524 | 2 | 8 | 100 | 0.0011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Pub/Sub (one staging copy) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 100 per second / Pub/Sub (two staging copies) | PlanningAssumption | 500 / 1000 | 0.9523809523809523809523809523809524 | 2 | 8 | 100 | 0.011444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Pub/Sub (one staging copy) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 1000 per second / Pub/Sub (two staging copies) | PlanningAssumption | 5000 / 10000 | 9.523809523809523809523809523809524 | 16 | 64 | 100 | 0.11444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Pub/Sub (one staging copy) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `service-adapter-planning-2026-10-22.1` | None reported |
| 10000 per second / Pub/Sub (two staging copies) | PlanningAssumption | 50000 / 100000 | 95.23809523809523809523809523809524 | 96 | 384 | 100 | 1.1444091796875 | `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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.

**Curve assumptions**

| Target scenario | Assumption | Value | Unit |
| - | - | -: | - |
| Pub/Sub (one staging copy) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Pub/Sub (one staging copy) | Representative event size | 1024 | bytes |
| Pub/Sub (one staging copy) | Rules evaluated per event | 10 | rules |
| Pub/Sub (one staging copy) | Point-read work equivalent per rule | 0.1 | operations |
| Pub/Sub (one staging copy) | Matched targets per event | 1 | targets |
| Pub/Sub (one staging copy) | Delivery attempts | 1 | attempts/target |
| Pub/Sub (one staging copy) | Outbox residence window | 60 | seconds |
| Pub/Sub (one staging copy) | Target price guess · read | 0 | USD/read |
| Pub/Sub (one staging copy) | Target price guess · write | 0 | USD/write |
| Pub/Sub (one staging copy) | Target price guess · provider operation | 0 | USD/provider operation |
| Pub/Sub (one staging copy) | Target list price · GiB-month | 0.27 | USD/GiB-month |
| Pub/Sub (one staging copy) | Target list price · published GiB | 0.0390625 | USD/published GiB |
| Pub/Sub (one staging copy) | Target list price · delivered GiB | 0.0390625 | USD/delivered GiB |
| Pub/Sub (one staging copy) | Target price guess · network GiB | 0 | USD/network GiB |
| Pub/Sub (one staging copy) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Pub/Sub (one staging copy) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Pub/Sub (one staging copy) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Pub/Sub (one staging copy) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Pub/Sub (one staging copy) | Target price guess · resource-month | 0 | USD/resource-month |
| Pub/Sub (one staging copy) | Target price guess · input token | 0 | USD/input token |
| Pub/Sub (one staging copy) | Target price guess · output token | 0 | USD/output token |
| Pub/Sub (one staging copy) | Target monthly base charge | 0 | USD/month |
| Pub/Sub (one staging copy) | Approximate target service minimum | 0 | USD/month |
| Pub/Sub (one staging copy) | Minimum primary CPU | 2 | vCPU |
| Pub/Sub (one staging copy) | Minimum primary RAM | 8 | GiB |
| Pub/Sub (one staging copy) | Minimum primary disk | 100 | GiB |
| Pub/Sub (one staging copy) | Additional full-price standby copy | 0 | 0 or 1 |
| Pub/Sub (one staging copy) | Allocated share of provisioned cost | 1 | fraction |
| Pub/Sub (one staging copy) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Pub/Sub (one staging copy) | Planning peak / mean work | 2 | multiplier |
| Pub/Sub (one staging copy) | Planning primary CPU utilization | 0.7 | fraction |
| Pub/Sub (one staging copy) | Resident state reserved in RAM | 0.1 | fraction |
| Pub/Sub (one staging copy) | Planning disk utilization | 0.8 | fraction |
| Pub/Sub (one staging copy) | Maintenance and log disk reserve | 20 | GiB |
| Pub/Sub (one staging copy) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Pub/Sub (one staging copy) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Pub/Sub (one staging copy) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Pub/Sub (one staging copy) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Pub/Sub (one staging copy) | Dependent object sink write price guess | 0.000005 | USD/write |
| Pub/Sub (two staging copies) | Origin list price · Custom event ingestion | 0.000001 | USD/64-KiB event units |
| Pub/Sub (two staging copies) | Representative event size | 1024 | bytes |
| Pub/Sub (two staging copies) | Rules evaluated per event | 10 | rules |
| Pub/Sub (two staging copies) | Point-read work equivalent per rule | 0.1 | operations |
| Pub/Sub (two staging copies) | Matched targets per event | 1 | targets |
| Pub/Sub (two staging copies) | Delivery attempts | 1 | attempts/target |
| Pub/Sub (two staging copies) | Outbox residence window | 60 | seconds |
| Pub/Sub (two staging copies) | Target price guess · read | 0 | USD/read |
| Pub/Sub (two staging copies) | Target price guess · write | 0 | USD/write |
| Pub/Sub (two staging copies) | Target price guess · provider operation | 0 | USD/provider operation |
| Pub/Sub (two staging copies) | Target list price · GiB-month | 0.27 | USD/GiB-month |
| Pub/Sub (two staging copies) | Target list price · published GiB | 0.0390625 | USD/published GiB |
| Pub/Sub (two staging copies) | Target list price · delivered GiB | 0.0390625 | USD/delivered GiB |
| Pub/Sub (two staging copies) | Target price guess · network GiB | 0 | USD/network GiB |
| Pub/Sub (two staging copies) | Target price guess · replica GiB-month | 0 | USD/replica GiB-month |
| Pub/Sub (two staging copies) | Target price guess · vCPU-hour | 0 | USD/vCPU-hour |
| Pub/Sub (two staging copies) | Target price guess · GiB-hour | 0 | USD/GiB-hour |
| Pub/Sub (two staging copies) | Target price guess · resource-hour | 0 | USD/resource-hour |
| Pub/Sub (two staging copies) | Target price guess · resource-month | 0 | USD/resource-month |
| Pub/Sub (two staging copies) | Target price guess · input token | 0 | USD/input token |
| Pub/Sub (two staging copies) | Target price guess · output token | 0 | USD/output token |
| Pub/Sub (two staging copies) | Target monthly base charge | 0 | USD/month |
| Pub/Sub (two staging copies) | Approximate target service minimum | 0 | USD/month |
| Pub/Sub (two staging copies) | Minimum primary CPU | 2 | vCPU |
| Pub/Sub (two staging copies) | Minimum primary RAM | 8 | GiB |
| Pub/Sub (two staging copies) | Minimum primary disk | 100 | GiB |
| Pub/Sub (two staging copies) | Additional full-price standby copy | 1 | 0 or 1 |
| Pub/Sub (two staging copies) | Allocated share of provisioned cost | 1 | fraction |
| Pub/Sub (two staging copies) | Read/write work per vCPU-second | 1500 | operations/vCPU-second |
| Pub/Sub (two staging copies) | Planning peak / mean work | 2 | multiplier |
| Pub/Sub (two staging copies) | Planning primary CPU utilization | 0.7 | fraction |
| Pub/Sub (two staging copies) | Resident state reserved in RAM | 0.1 | fraction |
| Pub/Sub (two staging copies) | Planning disk utilization | 0.8 | fraction |
| Pub/Sub (two staging copies) | Maintenance and log disk reserve | 20 | GiB |
| Pub/Sub (two staging copies) | Staging database CPU unit-price guess | 0.0413 | USD/vCPU-hour |
| Pub/Sub (two staging copies) | Staging database RAM unit-price guess | 0.007 | USD/GiB-hour |
| Pub/Sub (two staging copies) | Staging database disk unit-price guess | 0.17 | USD/GiB-month |
| Pub/Sub (two staging copies) | Dependent object sink storage price guess | 0.023 | USD/GiB-month |
| Pub/Sub (two staging copies) | Dependent object sink write price guess | 0.000005 | USD/write |

* Rules evaluated, matched targets and retries remain explicit. 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. us-east-1 → 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 is a declared directed mapping; a planning estimate does not establish deployment or request-serving support.
* Native/deployment comparison scope: This mapping uses native Pub/Sub delivery rather than an EventBridge API endpoint. Event delivery follows the target service's behavior; there is no EventBridge adapter request to measure.
* Authored planning assumptions, not measured adapter capacity. Origin rates are cited first-tier list prices, before free allowances and discounts.
* A cost scenario does not establish backend availability, protocol fidelity or production readiness. Registry serving status remains independent.
* The durable events table, in-process matcher and delivery outbox run even when a native broker is selected in a proposed architecture.
* Native Pub/Sub/Event Grid rows are designs; cost coverage does not make those runtime paths served.
* Google Pub/Sub bills published and delivered bytes at the Message Delivery Basic rate and retained messages per GiB-month. Each request is billed at no less than 1,000 bytes; the family's batching and delivery assumptions must represent that. The first 10 GiB of combined throughput a month is free per billing account and is not applied. BigQuery and Cloud Storage subscriptions bill USD 50 per TiB instead. Unacknowledged messages younger than one day bill no storage.
* 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 operations/vCPU coefficient supplies the compute requirement alongside explicit resource-hour minima.
* Copies and allocation fractions change cost only; they do not increase modeled primary capacity.
* AWS Price List API, AWSEvents offer: [https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json)
* Pub/Sub pricing: [https://cloud.google.com/pubsub/pricing](https://cloud.google.com/pubsub/pricing)

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

Excluded costs and workload features:

* Additional network transfer, backups, KMS, one-time migration and operational labor unless an explicit meter includes them.
* Destination application execution and separately billed downstream services; supply those allocations separately.
* Scheduler, Pipes, archive/replay and API destination tariffs; destination execution charges.
* 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-c03446d19e35e982d41ca3014545e9ec0d6edd9c` / `2026-10-22.planning.2`. Curve: `workload-1`.

Sources: [AWS Price List API, AWSEvents offer](https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AWSEvents/current/us-east-1/index.json), [Pub/Sub pricing](https://cloud.google.com/pubsub/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.