What scales
The production service adjusts adapter capacity automatically within the deployment’s agreed infrastructure and spending limits. You select the service adapter and configure, size and monitor the target workload with Tensor9’s help. Tensor9 handles routine adapter replica sizing under the production support terms in your signed agreement. Running a local process does not supply those production guarantees. A self-operated cluster also needs the agreed scaling controls, permissions, monitoring and failure tolerance; a cluster name or a replica count alone is not an eligibility check.Why the API operation matters
The fabric does more than forward HTTP requests. Before a native call it can evaluate authorization, decode a request, interpret expressions, read coordination state and prepare a mutation. It may make several target calls, process intermediate results and construct a different response.
Adding replicas increases parallel capacity. It cannot remove a per-key serialization constraint or automatically increase a shared coordination database’s capacity. More replicas can even increase contention. A light read and a complex conditional write therefore need different scaling measurements.
Three different limits
These interact but are not interchangeable. A native database can have spare capacity while the adapter is limited by local work. Conversely, adding adapter workers to a saturated target can increase throttling rather than improve completions.
Shared resources need fleet-wide budgets. For example, a connection budget must account for workers starting, running and draining during a rollout. Independently configuring each worker to use the entire database allowance is not a scalable deployment.
Read an operation-scale limit
A useful limit identifies:- the exact API operation or operation mix, with each operation’s share;
- request and response sizes, batch counts and any materialized intermediate data;
- conditional, consistency, index and stream modes;
- key, partition or message-group distribution;
- completed origin operations per second, plus bytes or message lifecycles where relevant;
- the deployment class, failure reserve and allowed demand growth;
- the first limiting stage and whether the result was fabric-limited or target-limited.
Bursts, growth and failures
New capacity takes time to become ready. Immediate bursts depend on capacity already ready to serve requests; automatic expansion restores that reserve and accommodates sustained growth. A covered burst must state its size and duration rather than relying on the word “autoscaling.” Consider two workers each running at half capacity. Together they can handle an immediate doubling of load, or the loss of one worker at the original load. They cannot handle both events simultaneously. Any promise that covers the combination needs sufficient reserve in the workers and their shared dependencies. Within the agreed envelope, adapter queueing and late scale-out remain Tensor9 handling time. A scaling event is not an automatic exclusion. Outside the envelope, requests need bounded admission and truthful outcomes; a failure must not be reported as success. Exceeding one workload limit should not excuse unrelated failures in other covered traffic. Before a launch or bulk migration, discuss its expected operation mix, growth rate, payloads and target headroom with Tensor9. Preparing for a known step increase is different from asking you to manage routine replica counts.Example: DynamoDB updates on provisioned Cosmos DB
Theorders table receives conditional updates. Compare three observations:
- Target pressure: Cosmos DB reports throttling and a hot partition while local adapter queues are stable. Review partition distribution, provisioned capacity and the actual request cost. More adapter replicas do not supply target request units.
- Fabric pressure: Cosmos DB has headroom but expression processing or a shared ownership stage delays requests before native calls begin. Tensor9 investigates the adapter path and its scaling behavior.
- Amplification: Native calls per completed update rise along with retries. Investigate both the triggering target condition and how the adapter responds. A target error is not a blanket exclusion for excessive local retries.
Example: S3 object storage
Themedia bucket serves many 4 KiB objects and a few large uploads. Request count alone hides the large transfers’ memory, byte-processing and connection demand. Track small-object latency separately from bulk transfer progress and ensure large streams do not starve small requests.
Likewise, ten DeleteObjects requests with a thousand keys each do not impose the same work as ten single-key deletes. Keep origin calls, per-key outcomes and native target calls separate when investigating a ceiling.