Skip to content

Latest commit

 

History

History
17 lines (14 loc) · 1.66 KB

File metadata and controls

17 lines (14 loc) · 1.66 KB

Race-condition matrix

The reconciler is designed around arrival order, not transport names.

Arrival order Result
optimistic → acknowledgement → observation One entry; pendingacknowledgedsynced.
optimistic → observation with mutation ID → acknowledgement One entry; the late acknowledgement is idempotent.
optimistic → canonical observation without mutation ID → acknowledgement Two entries exist temporarily, then collapse to the optimistic viewKey.
canonical observation repeated by multiple sources One entry per canonical ID.
optimistic → synced observation → late rejection The synced entry is not downgraded.
two records with identical content and no identity evidence They remain separate.
two mutations mapped to one canonical ID The conflicting mapping throws.

The test suite executes each of these cases. The package does not impose event versioning; use a custom merge function if your domain needs sequence numbers, timestamps, or field-level conflict resolution.