apple / apple/foundationdb

Feature Status: Idempotency IDs

Open
#12,344 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

We heavily rely on Idempotency IDs ([automatic-idempotency.html](https://apple.github.io/foundationdb/automatic-idempotency.html)) to handle automatic transaction retries introduced in FDB 7.3.0+ (see [this analysis](https://pierrezemb.fr/posts/automatic-txn-fdb-730/)). However, this feature is not listed in [feature-status.md](https://github.com/apple/foundationdb/blob/main/design/feature-status.md).

I found two related issues (#11446 on idempotency ID implementation and #10312 on automatic cleanup) but the overall feature status remains unclear.

The documentation mentions important caveats: it only prevents `commit_unknown_result` (not `transaction_timed_out` or `cluster_version_changed`), and it's not recommended for Multi-version client users. The Multi-version client limitation is particularly concerning as it's commonly used in production environments. Given these limitations, could you clarify:

Is this feature production-ready, and in which FDB versions?
What's the Long Term status?
Are there other issues or PRs related to this feature that I should be aware of?

I'm happy to help with any remaining work if needed, though I'd need some guidance to get started as this would be my first Flow/C++ oriented PR.

Contributor guide

Open the contributing guide

Research direction

Start with design/feature-status.md and automatic-idempotency.html, then review issues #11446 and #10312 and the linked analysis. Determine the supported FDB versions, long-term status, and Multi-version client limitations from the existing discussion and documentation. Done means the feature status and related references clearly answer those questions.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.