We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
RTK Queryのretryが組み込まれ、500番台のエラーのときはauto retryする仕組みとなっているが、backend側がtransactionalなAPIになっておらず、かつ500を返したりする場合に、おかしなバグにつながる。
具体例を以下にあげる。 POST chatの際に、backendはRDBに書き込む -> Amazon SQSに突っ込む -> backendでhookしてwebsocketでUIに通知する、という流れになっているように見えるが、ここでSQSに投入する際に失敗するとUIに500 errorを返している。このAPI設計でUI側でretryを具備すると、SQSとの接続がおかしいときは3回書き込んでしまい、同じchat messageが3つ保存されてしまう事態になる。
このケースは、backend側を 先にSQSに書く -> RDBに書く という形で修正すればよい話だが、他にも類似の問題があるかもしれないので、そもそもUIからauto retryする必要があるのかを検討したい。 (mutationは1回のみ、queryは複数回retryというのが妥当な線かも。できるのかは知らないけど)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
RTK Queryのretryが組み込まれ、500番台のエラーのときはauto retryする仕組みとなっているが、backend側がtransactionalなAPIになっておらず、かつ500を返したりする場合に、おかしなバグにつながる。
具体例を以下にあげる。
POST chatの際に、backendはRDBに書き込む -> Amazon SQSに突っ込む -> backendでhookしてwebsocketでUIに通知する、という流れになっているように見えるが、ここでSQSに投入する際に失敗するとUIに500 errorを返している。このAPI設計でUI側でretryを具備すると、SQSとの接続がおかしいときは3回書き込んでしまい、同じchat messageが3つ保存されてしまう事態になる。
このケースは、backend側を 先にSQSに書く -> RDBに書く という形で修正すればよい話だが、他にも類似の問題があるかもしれないので、そもそもUIからauto retryする必要があるのかを検討したい。
(mutationは1回のみ、queryは複数回retryというのが妥当な線かも。できるのかは知らないけど)
The text was updated successfully, but these errors were encountered: