laserninja opened a new issue, #10683:
URL: https://github.com/apache/gravitino/issues/10683

   ### What would you like to be improved?
   
   The Gravitino Iceberg REST server does not recognize or handle the 
`Idempotency-Key` header on any mutation endpoint. The Iceberg REST spec 
defines this as an optional UUIDv7 header on all create, update, and delete 
operations. When present, the server should return the original response for 
replayed keys instead of re-executing the operation. The spec also defines an 
`idempotency-key-lifetime` field in the `/config` response to advertise support 
and the key reuse window. Currently there are zero references to 
`Idempotency-Key` anywhere in the Iceberg REST server codebase, meaning clients 
cannot safely retry failed mutation requests without risking duplicate side 
effects.
   
   ### How should we improve?
   
   - Accept the `Idempotency-Key` header (UUIDv7) on all mutation endpoints in 
`IcebergTableOperations`, `IcebergNamespaceOperations`, and 
`IcebergViewOperations`
   - Store completed responses keyed by the idempotency key with a configurable 
TTL
   - Return the stored response on duplicate keys instead of re-executing the 
operation
   - Advertise `idempotency-key-lifetime` (e.g., `PT30M`) in the 
`IcebergConfigOperations` config response
   - Add unit tests for idempotent retry behavior


-- 
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]

Reply via email to