Optimistic Concurrency Control
Control de concurrencia optimista
El control de concurrencia optimista permite que las personas trabajen al mismo tiempo sin bloquear primero. Antes de guardar, verifica la versión y rechaza un cambio basado en datos antiguos.
Otro ejemplo
Dos médicos abren la revisión 17 del plan de atención. El primero guarda la revisión 18 con `If-Match: "r17"`. El segundo recibe 412, compara los campos, fusiona con cuidado y vuelve a intentar con `"r18"`; ninguna actualización se pierde silenciosamente.
Partes principales
- 01Token de versión de lectura
- 02Escritura condicional
- 03Respuesta a conflictos y fusión
Úsalo cuando
Use comprobaciones de versión cuando los conflictos son raros, las ediciones importan y el producto puede ayudar a las personas a comparar y recuperar.
No lo uses cuando
Después de que falla una verificación de versión, no intente automáticamente repetir ediciones cuyo orden cambie el resultado. Evite este método cuando los conflictos sean constantes y costosos.
Nombre usado en código
ETag + If-Match / version column + conditional update Antes de lanzarlo
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Control de concurrencia optimista (Optimistic Concurrency Control). User context: Dos médicos abren la revisión 17 del plan de atención. El primero guarda la revisión 18 con `If-Match: "r17"`. El segundo recibe 412, compara los campos, fusiona con cuidado y vuelve a intentar con `"r18"`; ninguna actualización se pierde silenciosamente. Technical concept or control: Control de concurrencia optimista (Optimistic Concurrency Control). Why it fits: Use comprobaciones de versión cuando los conflictos son raros, las ediciones importan y el producto puede ayudar a las personas a comparar y recuperar. Do not use it when: Después de que falla una verificación de versión, no intente automáticamente repetir ediciones cuyo orden cambie el resultado. Evite este método cuando los conflictos sean constantes y costosos. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Ningún estándar oficial único controla todo el término. Su significado puede cambiar según equipos, plataformas o marcos. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Revisa esta petición
Review how Control de concurrencia optimista (Optimistic Concurrency Control) is used now. Definition: El control de concurrencia optimista permite que las personas trabajen al mismo tiempo sin bloquear primero. Antes de guardar, verifica la versión y rechaza un cambio basado en datos antiguos. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.