1. What happens from an S3 PUT request until the object is durably acknowledged?
Trace one successful object upload from the client request through endpoint resolution, authentication and authorization, request routing, integrity checks, storage across failure domains, and the response returned to the client. Also state how retries and duplicate requests are handled and what the durability acknowledgement does and does not guarantee about later reads.
At a high level, the goal is to accept an S3 PUT and return success only after the object is durably stored. The main challenge is validating the request, protecting the data across failure domains, and handling uncertain retries correctly. I would explain three parts: validate and route the request, store the object durably, then acknowledge success. If a response is lost, the client can retry, but another successful PUT may occur.
The goal is to follow one successful object upload from the client until S3 says it succeeded. S3 must first check that the request is valid and allowed. It must then protect the object against the storage failures it is designed to handle before returning success. A lost response also creates uncertainty because the client may send the same PUT again. The diagram organizes the explanation into request entry and validation, internal storage and durability completion, then the response and retry behavior.
- Should I assume a normal single-Region S3 PUT over HTTPS?
- Should I cover both normal PUT retries and multipart uploads?
- Should I explain what the success response means for later GET, HEAD, and LIST operations?
I would start with the request entering S3. The client sends a PUT for a bucket and object key over TLS. The request contains headers, metadata, and the object body. It may also include an integrity checksum such as Content-MD5.
Endpoint Resolution resolves the regional S3 endpoint. The request then reaches the S3 front-end through the protected network connection.
Next, S3 checks who sent the request and whether it is allowed. Authentication & Authorization verifies the SigV4 signature and credentials. It also checks IAM policies, the bucket policy, and the access conditions shown in the diagram.
Request Validation & Rate Limits checks headers, syntax, size limits, and an optional Content-MD5 value. Request limits and quotas can also be applied here. If these checks fail, the successful write path stops.
After validation, Request Routing sends the authorized request to the appropriate S3 storage infrastructure in the bucket's Region. S3 selects the internal resources needed to process the object write.
Data Ingestion receives the object data over TLS. The validated object then enters S3's internal storage pipeline. If the client supplied an integrity checksum, S3 validates it. The diagram also shows service-side integrity checks during this stage.
The S3 Storage Subsystem stores the object data and metadata across multiple Availability Zones or other failure domains in the Region. The diagram does not depend on a specific replica count or a documented internal replication algorithm.
The Durability Completion Check represents the point where S3 has completed its required durable storage work. The required durability conditions must be satisfied before success is returned. S3 then sends a 200 OK response to the client. The response includes an ETag and may include a Version ID when versioning is enabled. The ETag should not be treated as a universal MD5 checksum.
If the client times out or does not receive the response, it can retry the same intended object key. The first PUT may already have succeeded, so another retry may also become a successful write. Ordinary PUT retries are not automatically deduplicated by an idempotency token.
Without versioning, a successful PUT to the same key replaces the current object. With versioning, each successful PUT can create another object version. Multipart uploads use an UploadId, and CompleteMultipartUpload makes the completed object visible.
Durability and read consistency are separate guarantees. After a successful PUT, S3 provides strong read-after-write consistency for later GET and HEAD requests, and strong consistency for LIST operations.
The benefit is that S3 waits for its required durability work before returning success. This protects a completed write across multiple failure domains in the Region. The downside appears when the client loses the response. The client may retry even though the first PUT already succeeded. Ordinary PUT retries are not automatically deduplicated. Without versioning, another successful PUT to the same key replaces the current object. With versioning, another successful PUT can create another version. We accept this because a timeout does not prove that the original write failed.
Interviewers ask this to see whether you can trace a cloud write from request entry to durable storage. They want to test your understanding of authentication, authorization, validation, integrity checks, failure domains, and acknowledgement timing. They also want to see whether you handle retry uncertainty correctly and understand that durability and read consistency answer different questions.









