You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-ups from review of the read-your-writes / idempotency work. Tests are
included here for now and will be split into the stacked tests PR.
- Claim TTL floor: the mollifier claim TTL was min(max, keyTTL), so a short customer
idempotencyKeyTTL (1-2s) could expire the claim mid-pipeline and let a polling
loser re-claim -> cross-DB duplicate under the split. Floor it at a pipeline bound
(TRIGGER_MOLLIFIER_CLAIM_MIN_TTL_SECONDS, default 5), independent of the key TTL.
- Publish compare-and-set: publishClaim returns the buffer CAS result; the trigger
success path detects a no-op'd publish (claim expired, another claimant moved in)
and logs it rather than silently treating its own run as canonical.
- Reacquire exhaustion: reacquireClearedGlobalWinner failed OPEN on exhausting the
bounded cleared-winner reacquires (or an unfindable winner), creating an
unserialised run that can dual-create across DBs. Fail CLOSED with a retryable 503
so the SDK retry re-serialises (mirrors the timed_out branch).
- Realtime batch route: findResource re-reads the owning primary on a replica miss,
so the Electric ShapeStream consumer (self-hosters), which ignores the
retryable-404 header, doesn't strand a live just-created batch on a permanent 404.
0 commit comments