- get_http_client: singleton AsyncClient with limits(max_keepalive=10, max_connections=20, keepalive_expiry=60s) - close_http_client: clean socket pool teardown in FastAPI lifespan shutdown - refactor dictionary fetchers to reuse pooled client and avoid 5x TLS handshakes per word lookup - add test_http_connection_pooling (22/22 pytest passed)