CONCEPT Cited by 1 source
Tentative request¶
Definition¶
A tentative request is one that the leader has transmitted to its followers but has not yet confirmed to meet the durability requirement. It can later be completed (materialised) or cancelled (deleted as if it never occurred).
Sugu Sougoumarane's canonical wiki framing: "The leader first transmits the payload of the request as tentative to all the nodes. A tentative request is one that can later be completed or canceled." (Source: sources/2026-04-21-planetscale-consensus-algorithms-at-scale-part-6-completing-requests).
Why the marker is load-bearing¶
The tentative marker is the affordance that lets followers store received-but-not-yet-durable work in a form that is cheap to discard. Without it:
- A follower that receives a write has no way to distinguish "apply this" from "hold this — it may still be cancelled".
- The MySQL semi-sync protocol lacks this marker ("a replica receives a request, it immediately applies it") — which produces the semi-sync split-brain hazard when a primary crashes with unconfirmed-durable work in flight.
Follower-side behaviour¶
Upon receiving a tentative request, a follower:
- Persists the payload alongside the tentative marker.
- Acknowledges receipt to the leader (the ack counts toward the durability quorum).
- Does not materialise the effect. The variable is not yet updated, the row is not yet written, the counter is not yet incremented.
A later complete message flips it to applied; a later cancel message deletes it.
Lifecycle in the three-stage model¶
Tentative is the observable follower-side shape of the incomplete stage in the three-stage two-phase completion protocol:
| Stage | Follower marker | Cancelable? |
|---|---|---|
| Incomplete | tentative | yes |
| Durable (implicit) | tentative | no |
| Complete | applied | n/a |
The transition from incomplete → durable is not marked on the follower — it is a property of the system-wide state, not a local message. Only the leader knows when enough acks have arrived to declare durability.
Why a leader never cancels its own tentative request¶
Sugu's canonical rule: "A leader that fails to make a request durable can keep retrying, but it must not attempt to cancel the request. This is because an elector could be performing a leadership change and may attempt to propagate the failed request." Cancellation is the elector's prerogative during a leadership change; a leader that cancelled its own in-flight work would race with a concurrent elector trying to propagate it.
Seen in¶
- sources/2026-04-21-planetscale-consensus-algorithms-at-scale-part-6-completing-requests — canonical wiki introduction; Sugu uses the tentative marker to separate receipt from materialisation and to give followers a clean delete path.
Related¶
- concepts/durable-request — the implicit middle stage a tentative request transitions into.
- concepts/two-phase-completion-protocol — the lifecycle this marker sits inside.
- concepts/request-cancellation — what happens when a tentative request is abandoned.
- concepts/forward-progress — why leaders retry instead of cancel.
- patterns/two-phase-tentative-then-complete — the pattern canonicalising this shape.