Skip to content
  • Andrey Azeev's avatar
    762a2622
    Document WebkassaApi per-call architecture decision · 762a2622
    Andrey Azeev authored
    `fastapi-unification` P17 предписывает singleton-режим для всех
    async-resource либ. WebkassaApi — per-tenant клиент (host из
    `account.testMode`, `X-API-KEY` per-account, mutable session
    `Token` с auto-refresh в Mongo), что делает тривиальный singleton
    небезопасным под concurrency.
    
    Фиксирую сознательное исключение по категории C.3 из
    `references/style/microservices.md`:
    - `CHANGELOG.md`: новая секция `### Architecture decisions` в
      `[Unreleased]` с обоснованием per-call и триггерами пересмотра
      (RPS > 50 ops/sec, FD pressure, >100 активных KKM).
    - `src/micro_services_api/webkassa/client.py`: docstring класса
      расширен NOTE-блоком со ссылкой на CHANGELOG.
    
    Описан также чек-лист «Унификация по `fastapi-unification`» — что
    именно входит в Unreleased: версии корпоративных либ, ASGI
    middleware, lifespan canonical, Mongo singleton, lib-auth-guard
    миграция, удалённые legacy-модули.
    762a2622
    Document WebkassaApi per-call architecture decision
    Andrey Azeev authored
    `fastapi-unification` P17 предписывает singleton-режим для всех
    async-resource либ. WebkassaApi — per-tenant клиент (host из
    `account.testMode`, `X-API-KEY` per-account, mutable session
    `Token` с auto-refresh в Mongo), что делает тривиальный singleton
    небезопасным под concurrency.
    
    Фиксирую сознательное исключение по категории C.3 из
    `references/style/microservices.md`:
    - `CHANGELOG.md`: новая секция `### Architecture decisions` в
      `[Unreleased]` с обоснованием per-call и триггерами пересмотра
      (RPS > 50 ops/sec, FD pressure, >100 активных KKM).
    - `src/micro_services_api/webkassa/client.py`: docstring класса
      расширен NOTE-блоком со ссылкой на CHANGELOG.
    
    Описан также чек-лист «Унификация по `fastapi-unification`» — что
    именно входит в Unreleased: версии корпоративных либ, ASGI
    middleware, lifespan canonical, Mongo singleton, lib-auth-guard
    миграция, удалённые legacy-модули.
Loading