- the origin-shaped request and response;
- the explanation report; and
- the target resource or service state.
Playbook 1: S3 PutObject to Cloud Storage
Question: Does an S3 PutObject request map to the expected Cloud Storage object, and what can the explanation establish about that mapping?
Read the S3 service profile first. It is the source for operation coverage and behavioral differences. This example covers a small direct upload. It does not establish multipart, resumable-upload, versioning or large-payload behavior.
Inspect the selected profile
Profile inspection does not launch an adapter or contact Google Cloud:PutObject, the S3 origin and the Cloud Storage target. The profile describes supported behavior. It is not evidence from a particular request.
Separate preview from execution
Use two keys so the evidence cannot be confused:
For the preview, send an explicit control rather than relying on the deployment default:
Collect the evidence
For each request, retain:- HTTP status, S3 request identifiers and ETag, when returned;
x-t9-explain-id,x-t9-explain-modeand revision fields;- the retrieved report before acknowledgment;
- the Cloud Storage lookup for the exact bucket and key; and
- a digest or byte comparison for the synthetic payload.
An ETag alone does not prove that the report is complete or that every payload byte was persisted. Verify the object through Cloud Storage. Conversely, a missing final response does not prove that no object was written. Check the target key before retrying.
Read the causal sequence
A useful report separates these steps:- identify the S3 operation, bucket and key;
- resolve the bucket to its Cloud Storage target;
- map S3 metadata and content properties;
- authorize and attempt the target upload;
- observe the target result available to the adapter; and
- return the S3-shaped response.
planned is not attempted, and attempted is not committed. If the report ends after the upload attempt, treat the outcome as uncertain until the native lookup resolves it.
Decide the next action
- Preview produced an object: stop. The request did not behave as a hypothetical explanation.
- Execution returned success but the object is absent: preserve the report and target lookup. Check the exact bucket mapping and target request identifier.
- Object exists but the client timed out: compare content before deciding whether a retry is safe.
- Metadata differs: compare only the fields the S3 profile says are mapped. Do not infer unsupported parity from the object body.
explain/performed.txt after recording an observed cleanup result. Stopping an adapter process does not undo the upload.
Playbook 2: DynamoDB CreateTable to provisioned Cosmos DB
Question: Which provisioned Cosmos DB mapping is selected for a DynamoDB table request, and which facts are still needed before declaring the table ready?
Start with the provisioned Cosmos DB mapping. DynamoDB has several Azure mappings, so the target identifier is part of the evidence:
::table facet selects the directed profile. It is not the runtime service name used by an AWS SDK.
Use a complete, bounded request
The application-facing input remains an ordinary DynamoDB request. For example, a Java application can construct the bounded test table like this:x-t9-explain control with mode Explain through an explanation-aware request path. The hypothetical report should let you inspect validation, selected mapping, required dependencies and intended work without treating a provider allocation as complete. The SDK request guide explains the signing boundary and why an ordinary generated client cannot decode an Explain document as a normal CreateTableResponse.
Read the sequence, not only the last line
Text equivalent:
Provisioned capacity is a target configuration decision. Record the configured capacity separately and verify the effective value through the native Azure resource view. Do not infer request units from
PAY_PER_REQUEST, a successful profile lookup or an accepted CreateTable response. Only claim that a request changed capacity when the selected profile documents that input and the explanation plus native target evidence show the change.
Compare evidence before retrying
If the report is partial while Cosmos DB is still provisioning, poll the explanation receipt and the normal origin status operation. Do not resendCreateTable merely to obtain a later report revision. A later revision may add provider observations without running the operation again.
If the origin response and target state disagree, preserve:
- the exact DynamoDB table name and selected target mapping;
- explanation ID, mode and revision;
- provider operation or request identifiers;
- the last origin-facing table state;
- the native Cosmos DB account, database and container state; and
- the configured capacity and the effective capacity shown by the native target.
Playbook 3: a VPC deletion refused by a dependency
Question: Why wasDeleteVpc refused, and can the operator inspect the blocker without deleting anything?
Read the VPC service profile for the selected target. Use Explain against the existing resource first.
An explanation can show that the caller was authenticated and that the requested VPC still has a dependent resource. Those are separate facts: