Skip to content

feat(jwks): implement single-flight coalescing and fine-grained lock in PyJWKClient (#94, #102) - #112

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/94-102-jwks-singleflight-lock
Aug 26, 2026
Merged

feat(jwks): implement single-flight coalescing and fine-grained lock in PyJWKClient (#94, #102)#112
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/94-102-jwks-singleflight-lock

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

📝 Описание изменений

  1. Single-Flight Coalescing (паттерн Leader-Follower): При одновременном обращении множества потоков за обновлением JWKS (например, при ротации ключей) только один поток (лидер) выполняет сетевой HTTP-запрос, а остальные ждут его завершения на Event и получают готовый результат без лишних сетевых соединений.
  2. Fine-Grained Locking: Блокировка self._lock теперь захватывается исключительно для быстрых манипуляций со словарями и LRU-кэшем в оперативной памяти и освобождается на время выполнения сетевого I/O (urlopen).

🔗 Связанные Issue

Closes #94, Closes #102

🧪 Чеклист проверки

  • Юнит-тесты пройдены без ошибок
  • Добавлен тест многопоточного объединения запросов test_jwks_client_single_flight_coalescing
  • Нет конфликтов с целевой веткой dev

@ZhuchkaTriplesix ZhuchkaTriplesix added p1 Should ship in 0.4.0 performance Throughput and latency labels Aug 26, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit b95ea5a into dev Aug 26, 2026
5 of 6 checks passed
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the issue/94-102-jwks-singleflight-lock branch August 26, 2026 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

p1 Should ship in 0.4.0 performance Throughput and latency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant