stock pull worker + asyncio scheduler + rate limit SQLite + FastAPI app (:8001). 16 tests planned. brainstorming 6 decisions: batch=A(separate FastAPI :8001) / scope=A(3 items) / scheduler=B(asyncio cron) / http=B(httpx + custom retry + memory cache) / rate-limit=A(SQLite WAL) / test=B(pytest-asyncio + httpx mock). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>