# ADR-002: In-Memory Cache with Migration Path to Redis **Status:** Accepted **Date:** 2026-06-13 **Deciders:** Architect, Tech Lead ## Context Для MVP требуется кеширование MOEX-данных, чтобы снизить нагрузку на внешнее API и обеспечить приемлемое время ответа. На начальном этапе нет требований к горизонтальному масштабированию, и хочется избежать внешних зависимостей. ## Decision Использовать `@nestjs/cache-manager` с MemoryStore. TTL настраивается per-endpoint через конфигурацию. Архитектура позволяет переключиться на Redis заменой импорта провайдера: ```typescript // Текущая реализация CacheModule.register({ store: 'memory', ttl: 900 }) // Миграция на Redis (меняется только registration) CacheModule.registerAsync({ useFactory: () => ({ store: redisStore, host: process.env.REDIS_HOST, port: process.env.REDIS_PORT, }), }) ``` ## Consequences - Нет внешних зависимостей для MVP - Кеш сбрасывается при рестарте сервера (приемлемо для read-only приложения) - Чистый путь миграции на Redis - Единый API для cache (cache-manager abstraction)