Hi Huaxin, I looked at the PR briefly. It appears to add a persistence SPI for storing information related to the processing of Idempotency Keys.
I do not have any particular comment about that interface itself ATM, but I suppose it will be used (eventually) in conjunction with coordinating request processing in multiple Polaris server nodes. This aspect is not apparent in PR 3205 and IIRC it is not discussed in depth in the proposal doc (please correct me if I missed that). The updateHeartbeat() method is declared, but how it is supposed to be used is not clear to me. So, in order to better understand how the proposed persistence SPI can work end-to-end, could you expand on your proposal for coordinating retry processing across nodes and how that will relate to persistence? Specifically, I mean the case when a retry is submitted by a client to one node while another node is still processing the original request. Another case is when the original request node crashes without updating the persisted data. Additionally, what is your vision regarding the cleanup of old Idempotency records? Is this a collaborative process where all server nodes participate equally? Thanks, Dmitri. On Thu, Dec 4, 2025 at 4:53 PM huaxin gao <[email protected]> wrote: > Hi all, > > Following the earlier idempotency proposal, I’ve opened a PR > <https://github.com/apache/polaris/pull/3205> that adds the first > implementation of idempotency retries to Polaris core and would like > feedback on the Java design. > > The PR introduces: > > - > > org.apache.polaris.core.persistence.IdempotencyStore – an SPI to > reserve/load/finalize/purge idempotency records (with ReserveResult / > ReserveResultType). > > > - > > org.apache.polaris.idempotency.IdempotencyRecord – the value type for > stored idempotency metadata. > > > - > > PostgresIdempotencyStore + PostgresIdempotencyStoreIT – a > relational‑jdbc implementation backed by > POLARIS_SCHEMA.idempotency_records, tested via Testcontainers/Postgres. > > Please take a look at the PR and reply here or comment on the change with > any concerns or suggestions. > > Thanks, > > Huaxin >
