-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add: Idempotency strategy #6744
Comments
To give an update about the current status of this feature request: The heavy lifting is done as the necessary changes are implemented in Parse Server. The next step would be to add the Since we have a number of SDKs, whoever feels like adding this to an SDKs please feel free to go ahead and submit a PR. Examples using the REST API are test cases in the Things to consider:
|
I am closing this as the Parse Server related PR is finished. Practically speaking, the client SDKs for Android and iOS are still lacking the PRs to send the request ID, as has already been done with the JS SDK. These PRs should ideally contain a reference to his issue for readability. |
Issue
Several issues* have been opened over the years regarding idempotency in case of:
The basic problem is that the client intends to send a request to the server and for different reasons the server receives the request multiple times. That leads to objects being saved multiple times, Cloud Code function being executed multiple times, etc.
None of the vast discussions resulted in a PR, due to the complexity of the issue, which led to some people using customized solutions, mostly with Cloud Code triggers. There are several possible solutions which primarily differ in their tradeoffs between cost and efficacy and the desired efficacy varies depending on the use case for Parse Server. It should be noted that this issue is not specific to Parse Server but a common networking issue.
Suggested solution
Process:
Example:
400
response with Parse ErrorDuplicateRequest
Context:
2xx
response on repeated requests, however since responses are not cached, we cannot easily reconstruct a response, for example a createdobjectId
.Alternative solutions
Additional context
*Similar issues:
Similar solutions:
TODOs
The text was updated successfully, but these errors were encountered: