version, y cada cambio dice en qué versión se basa.
La regla
- Lee el registro. Su
versionviene en la respuesta. - Envía ese valor sin tocarlo como
expectedVersionen el cambio. - Si alguien cambió el registro entretanto, Brelio responde
409y no cambia nada. Vuelve a leerlo, decide otra vez y reintenta.
409 VERSION_CONFLICT
Trata la versión como opaca
Copiaversion 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 unaIdempotency-Key nueva.
Node.js