Review this generated reservation failover path for consistency and safe retries.
Reserve inventory without taking stock below zero, preserve one-writer authority, and let a caller retry an unknown result safely.
JavaScript
async function reserve(actor, itemId, quantity, replicas) {
if (!actor.canReserve) throw new Error('forbidden');
const requestId = crypto.randomUUID();
const reachable = replicas.filter((replica) => replica.isHealthy());
for (const replica of reachable) {
try {
const result = await Promise.race([
replica.reserve({ itemId, quantity }),
timeout(100).then(() => ({ ok: false })),
]);
if (result.ok) return { ok: true, requestId };
} catch {
continue;
}
}
const cached = replicas[0].cache.get(itemId);
cached.stock -= quantity;
replicas[0].cache.set(itemId, cached);
return { ok: true, requestId, degraded: true };
}
generated code is illustrative, not from any one model