Saltar al contenido principal
Una recepcionista edita un paciente en Brelio mientras tu integración actualiza el mismo paciente. Sin una comprobación, la última escritura gana sin avisar. Brelio lo evita: cada registro tiene una version, y cada cambio dice en qué versión se basa.

La regla

  1. Lee el registro. Su version viene en la respuesta.
  2. Envía ese valor sin tocarlo como expectedVersion en el cambio.
  3. Si alguien cambió el registro entretanto, Brelio responde 409 y no cambia nada. Vuelve a leerlo, decide otra vez y reintenta.
Enviar otra vez la versión antigua responde:
409 VERSION_CONFLICT

Trata la versión como opaca

Copia version exactamente como la leíste. No la construyas, no la interpretes, no la compares ni la incrementes. Su forma depende del recurso y puede cambiar: Envíala con el tipo que te dio el recurso: string donde version es un string, número donde es un número.

Operaciones que la necesitan

Las creaciones no la llevan: no hay nada que pisar.

Qué hacer con un 409

No repitas la misma petición: volverá a fallar. Lee el registro, comprueba si tu cambio sigue teniendo sentido con los datos nuevos (puede que la cita ya esté cancelada) y envía una petición nueva con la nueva versión y una Idempotency-Key nueva.
Node.js