Offline Concurrency Control

Protecting data from concurrent edits that span more than one transaction: optimistic offline lock, pessimistic offline lock, coarse-grained locking at the aggregate, and implicit locking applied by the framework. Use when two users overwrite each other's edits, when a version column is being added or removed, when OptimisticLockException reaches the user as a stack trace, when a bulk update silently bypasses versioning, when a lock is held across thinking time by a database transaction, when a lock table has no expiry, or when retry is proposed as the answer to a conflict. Does not cover boundaries and isolation within one transaction (enterprise-transactions), in-process thread locking (java-memory-model), or repeat-safety of a request (idempotency).

robsonkades 781b1c8 4 files · 28.8 KB Updated

File contents

robsonkades/agent-skills/tree/main/skills/offline-concurrency-control commit 781b1c82f8

Frequently asked questions

npx skillmds@latest add robsonkades/offline-concurrency-control