docs: record auth and cache concurrency policy

This commit is contained in:
2026-08-23 22:42:44 +03:00
parent ef2bf977bf
commit 8568e7b317
3 changed files with 19 additions and 2 deletions
@@ -0,0 +1,15 @@
# 009. Политика конкурентной ротации refresh token
**Status:** Accepted; supersedes the refresh-token reuse rule in ADR-006.
## Context
Два одновременных запроса могут предъявить один действительный refresh token. Отзыв Session для проигравшего запроса делает недействительной сессию успешного запроса, а сохранение отдельной истории token или grace-window для различения replay добавляет непропорциональное состояние локальному MVP.
## Decision
Backend атомарно ротирует refresh token через compare-and-swap: один запрос становится победителем. Запрос с superseded refresh token, включая проигравший конкурентный запрос, получает `401` и удаление cookie, но сам по себе не отзывает Session. Публичный auth contract и feature documentation должны отражать эту семантику.
## Consequences
Повторное предъявление superseded token больше не служит автоматическим сигналом для отзыва Session. Если понадобится различать конкурентный запрос и подтверждённый replay, потребуется отдельный change с дополнительным server-side состоянием и новой security policy.