When optimizing performance, ensure hot paths do only the minimum required work and never block while holding scarce resources. Apply these rules:
Example (secret gating + pooled Redis around outbound call):
-- Guard per-request deep work
if secret.has_secret_ref(upstream_ssl) then
local resolved = apisix_secret.fetch_secrets(upstream_ssl, true)
upstream_ssl = resolved
end
-- Release pooled Redis before outbound embedding request
local res = red:get(key)
if miss then
local embedding = do_outbound_http_request(body) -- no Redis held
-- re-acquire only for Redis writes/search
-- e.g., ensure_index/knn_search using a fresh/checked-out connection
end
Use lightweight checks + memoization to keep latency stable under load, and structure code so scarce pools aren’t drained by long waits.