# Внешние источники и применимость

> Исторический snapshot. После разделения chat/voice адреса и deployment ownership изменились: чат — https://chat-agent.gis-master.ru/, file UI/diagnostics — https://voice.gis-master.ru/. Текущая поставка: [DEPLOYMENT](</experiments/voice-ai/archive/w/DOCS/DEPLOYMENT.md>). Старые адреса и service owners ниже описывают дату исследования, а не инструкции для текущего runtime.

Сверка выполнена 16.09.2026. Это материалы к инженерным предложениям, а не доказательство поведения развёрнутой системы. Числа вызовов и особенности реализации взяты из исходников на `772de4a`; прогнозы требуют измерения.

| Источник Context7 | Что проверялось | Ограничение версии |
|---|---|---|
| `/nats-io/nats.docs` | queue groups; подтверждения и redelivery JetStream | Документация движется независимо от NATS 2.11.6 в проекте; новые поля конфигурации нужно проверять отдельно |
| `/aio-libs/aiohttp` | persistent ClientSession и connection pool | В Core закреплена 3.10.5; примеры новой stable нельзя переносить без проверки API |
| `/websites/langchain_oss_python_langgraph` | persistence, replay и идемпотентность внешних шагов | В проекте нижняя граница 0.2.55 без точного pin; это не подтверждение наличия API из 1.x |
| `/websites/postgresql_18` | границы транзакции и атомарность | Проект использует PostgreSQL 16; базовое правило дополнительно сверено с документацией 16 |

## Официальные страницы

- [aiohttp: persistent session](<https://docs.aiohttp.org/en/stable/client_advanced.html#persistent-session>) — к предложению 01; соединения следует переиспользовать в пределах lifecycle приложения.
- [LangGraph: workflows и agents](<https://docs.langchain.com/oss/python/langgraph/workflows-agents>) — к 02 и 05; фиксированный сценарий и модель, выбирающая ход выполнения, имеют разные задачи.
- [asyncio Queue](<https://docs.python.org/3/library/asyncio-queue.html>) — к 03; ограниченная очередь управляет admission, а не только числом исполняющихся обработчиков. `Queue.shutdown()` появился в Python 3.13, поэтому для Python 3.11 здесь не предлагается.
- [NATS queue groups](<https://docs.nats.io/learn/core-nats/queue-groups>) — к 04; одно сообщение получает один участник группы. Это не session affinity и не exactly-once.
- [PostgreSQL 16: transactions](<https://www.postgresql.org/docs/16/tutorial-transactions.html>) — к 04; внешние вызовы не входят в локальную SQL-транзакцию.
- [NATS authorization](<https://docs.nats.io/running-a-nats-service/configuration/securing_nats/authorization>) — к 06; разрешения publish/subscribe задаются на стороне сервера, имя subject само по себе не является контролем доступа.
- [Strangler Fig](<https://learn.microsoft.com/en-us/azure/architecture/patterns/strangler-fig>) — к 05, 07 и 08; заменять путь можно поэтапно при сохранении совместимости на внешней границе.
- [NATS JetStream consumers](<https://docs.nats.io/nats-concepts/jetstream/consumers>) — к 08; повторная доставка требует идемпотентной обработки.
- [LangGraph persistence](<https://docs.langchain.com/oss/python/langgraph/persistence>) — к 08; checkpoint должен сохраняться во внешнем хранилище, а внешние эффекты требуют отдельной защиты от повторов.
- [OpenTelemetry traces](<https://opentelemetry.io/docs/concepts/signals/traces/>) — общий план измерений; связывать spans, учитывать ожидание очереди и фиксировать точную конфигурацию эксперимента.

Ни один из этих источников не доказывает, что переписывание на конкретный язык ускорит этот проект. Выбор runtime, транспорта и границы сервиса должен пройти сравнительный тест, описанный в соответствующем предложении.
