@@ -156,8 +156,18 @@ Variáveis:
156156* ` BACKEND_TIMEOUT_SECONDS ` (default: ` 8 ` )
157157* ` PUBLICATION_AFFILIATIONS_TIMEOUT_SECONDS ` (default: ` 4 ` )
158158* ` PUBLICATION_AFFILIATIONS_TIMEOUT_POOL_SIZE ` (default: ` 8 ` )
159+ * ` PUBLICATION_AFFILIATIONS_MAX_INFLIGHT ` (default: valor de ` PUBLICATION_AFFILIATIONS_TIMEOUT_POOL_SIZE ` )
159160* ` USAGE_REPORT_TIMEOUT_SECONDS ` (default: ` 4 ` )
160161* ` USAGE_YEARLY_TIMEOUT_SECONDS ` (default: usa valor de ` USAGE_REPORT_TIMEOUT_SECONDS ` )
162+ * ` USAGE_TIMEOUT_POOL_SIZE ` (default: ` 8 ` )
163+ * ` USAGE_TIMEOUT_MAX_INFLIGHT ` (default: valor de ` USAGE_TIMEOUT_POOL_SIZE ` )
164+
165+ Detalhes de comportamento:
166+
167+ * Endpoints de usage usam fallback de período por sessão (` range_start ` /` range_end ` ) quando os parâmetros não são enviados.
168+ * Os pools são isolados por backend (` usage ` e ` publication ` ) para evitar contenção cruzada.
169+ * O limite de inflight aplica backpressure: quando saturado, retorna fallback sem disparar nova chamada de backend.
170+ * Em timeout, a requisição em background recebe ` cancel() ` (best effort), mantendo o retorno rápido ao usuário.
161171
162172### 4. Circuit breaker para Usage API
163173
@@ -182,8 +192,11 @@ PREWARM_DELAY_SECONDS=2
182192BACKEND_TIMEOUT_SECONDS=8
183193PUBLICATION_AFFILIATIONS_TIMEOUT_SECONDS=4
184194PUBLICATION_AFFILIATIONS_TIMEOUT_POOL_SIZE=8
195+ PUBLICATION_AFFILIATIONS_MAX_INFLIGHT=8
185196USAGE_REPORT_TIMEOUT_SECONDS=4
186197USAGE_YEARLY_TIMEOUT_SECONDS=4
198+ USAGE_TIMEOUT_POOL_SIZE=8
199+ USAGE_TIMEOUT_MAX_INFLIGHT=8
187200
188201USAGE_CIRCUIT_BREAKER_HOST=usage.apis.scielo.org
189202USAGE_CIRCUIT_BREAKER_FAILURE_THRESHOLD=3
0 commit comments