amogh-jahagirdar commented on code in PR #14196:
URL: https://github.com/apache/iceberg/pull/14196#discussion_r2400619934


##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -1903,6 +1926,34 @@ components:
       schema:
         type: string
 
+    idempotency-key:
+      name: Idempotency-Key
+      in: header
+      required: false
+      schema:
+        type: string
+        format: uuid
+        minLength: 36
+        maxLength: 36
+        example: "550e8400-e29b-41d4-a716-446655440000"
+      description: |
+        Optional client-provided idempotency key for safe request retries.
+
+        When present, the server ensures no additional effects for requests 
that carry the same
+        Idempotency-Key within the same operation/resource scope. If a prior 
request with this key
+        has been finalized, the server returns the previously finalized 
response instead of
+        re-executing the mutation.
+
+        Finalization rules:
+        - Finalize & replay: 200, 201, 204, and deterministic terminal 4xx
+        - Do not finalize (not stored/replayed): 5xx, 409 request_in_progress
+
+        Key Requirements:
+        - Key format: UUID (V7 preferred)

Review Comment:
   I don't think the spec should get in the business of defining a required 
UUID format of the key.
    My mental model at least is that these keys are effectively any UUIDs 
generated by the client under certain conditions, and  the server can either 
choose to say "Yeah I can work with that structure and dedupe" or "No, this is 
not allowed". 
   
   If a client can generate these V7 UUIDs, and a server can handle it that's 
great. If the client cannot generate these newer UUIDs, but a server can handle 
it within the other requirements of this spec that's great. If a server cannot 
handle it, it would reject the request. Keeping the spec open that way, allows 
for different components to evolve as desired while still being able to derive 
the most value out of this proposal.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to