Architektura
Pokročilý
Idempotency — bezpečné opakování operací
Implementace idempotentních API. Idempotency keys a databázové techniky.
Co je idempotence?
Vícenásobné provedení = stejný výsledek. GET, PUT, DELETE jsou přirozeně idempotentní. POST není.
Idempotency Key
app.post('/api/payments', async (req, res) => {
const key = req.headers['idempotency-key'];
if (!key) return res.status(400).json({ error: 'Missing key' });
const existing = await redis.get(\`idem:\${key}\`);
if (existing) return res.json(JSON.parse(existing));
const result = await processPayment(req.body);
await redis.setex(\`idem:\${key}\`, 86400, JSON.stringify(result));
res.status(201).json(result);
});
DB idempotence
INSERT INTO orders (external_id, customer_id, total)
VALUES ('ord-123', 'cust-456', 1000)
ON CONFLICT (external_id) DO NOTHING RETURNING *;
Shrnutí
Implementujte idempotency keys pro POST/PATCH. Vždy počítejte s opakovanými requesty.
Potřebujete pomoct s implementací?
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.
Nezávazná konzultace