|
|
|
|
|
by fc417fc802
33 days ago
|
|
> and yet it should return 409 to all other attempts, even if the initial attempt ends up unsuccessful. No, it shouldn't. The comment you're responding to is taking 200 to mean "success" and 409 to mean "it was done" so if it was not in fact done then you _must not_ return that. That said, I thought one of the benefits of idempotency was nonblocking APIs so I'm not sure I like that scheme. It seems like 200 should mean "submitted, accepted, incomplete" and 409 should mean "previously completed". The client never knows which request succeeded but they're idempotent so that doesn't matter. You just poll until the 200 becomes a 409. Of course that would provide zero diagnostics in the case of failure so I think it's not sufficient as described. |
|