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]
