STORE DOCS / DIAGRAMS
Backend acceptance or precondition conflict Backend acceptance or precondition conflict MutationServer sends a deterministic request for generation g and idempotency key k, returns a Present or Absent acknowledgement after backend acceptance, or throws a sanctioned StoreResults.conflict after a precondition conflict. ALT [backend accepts] [precondition conflict] push(generation g, idempotencyKey k) deterministic request for g and k authoritative result Present or Absent acknowledgement conflict response sanctioned throw: StoreResults.conflict Mutation engine MutationServer Backend Call / local work Acknowledgement / return Sanctioned throw After the backend accepts, receipt durability determines whether a later drain can replay generation g. That continuation is shown in the next diagram.