Skip to content

Use HTTPRequestBatcher for Gov.UK Pay API calls#2366

Draft
jaucourt wants to merge 3 commits intodevelopfrom
feature/IWTF-4598-implement-batcher-rcp-govuk-pay
Draft

Use HTTPRequestBatcher for Gov.UK Pay API calls#2366
jaucourt wants to merge 3 commits intodevelopfrom
feature/IWTF-4598-implement-batcher-rcp-govuk-pay

Conversation

@jaucourt
Copy link
Copy Markdown
Collaborator

https://eaflood.atlassian.net/browse/IWTF-4598

Modify the recurring payments processor to route all Gov.UK Pay
API interactions (payment creation and payment status checks)
through an HTTPRequestBatcher instance. This introduces
configurable batch size and inter-batch delay via environment
variables (RCP_BATCHER_BATCH_SIZE, RCP_BATCHER_DELAY_MS), enabling
rate-limit-aware batching with automatic 429 retry handling.

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

jaucourt and others added 3 commits April 13, 2026 15:33
https://eaflood.atlassian.net/browse/IWTF-4598

Modify the recurring payments processor to route all Gov.UK Pay
API interactions (payment creation and payment status checks)
through an HTTPRequestBatcher instance. This introduces
configurable batch size and inter-batch delay via environment
variables (RCP_BATCHER_BATCH_SIZE, RCP_BATCHER_DELAY_MS), enabling
rate-limit-aware batching with automatic 429 retry handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use an HTTPRequestBatcher instance for payment creation and payment
status check requests so that all Gov.UK Pay interactions are batched
and benefit from automatic 429 back-pressure handling.

- Replace sendPayment/getPaymentStatus with two HTTPRequestBatcher
  instances (one per phase: creation, status-check).
- Add govPayRecurringHeaders() helper and createBatcher() factory.
- Batch size and inter-batch delay are configurable via env vars:
  RCP_BATCHER_BATCH_SIZE (default 50) and RCP_BATCHER_DELAY_MS
  (default 1000).
- Correlate creation responses via body.reference; status responses
  via response.url path segment.
- Rewrite tests to mock HTTPRequestBatcher; 100% code coverage.

https://eaflood.atlassian.net/browse/IWTF-4598

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
3 New Major Issues (required ≤ 0)
2 New Critical Issues (required ≤ 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant