Skip to content

Performance: Implement Backend Request Coalescing for Duplicate Concurrent Calls #509

Description

@Smartdevs17

Context

When multiple clients request the same data simultaneously (e.g., popular merchant dashboard), the backend processes redundant identical queries.

Current Limitation/Problem

Identical concurrent requests each execute separate database queries and compute the same response. This wastes resources and increases load under traffic spikes.

Expected Outcome

Request coalescing: identical concurrent requests are merged into a single backend execution. All callers receive the same response when it completes.

Acceptance Criteria

  • Implement request coalescing middleware for GET endpoints
  • Identify coalescable requests: same route, same query params, same auth context
  • First request executes, subsequent identical requests wait for first to complete
  • Configurable per-endpoint (enable/disable, TTL for coalesced results)
  • Proper error propagation: if first request fails, all fail
  • Timeout: oldest request timeout applies to all
  • Memory: coalesced request promises are garbage collected after completion
  • Performance: identical concurrent requests reduced by 90% under load
  • Metrics: coalescing hit rate, average wait time

Technical Scope

  • backend/src/middleware/request-coalescer.ts - coalescing middleware
  • Promise registry with key generation (method + path + query + auth hash)
  • Redis-based coalescing for multi-instance deployments
  • Integration with existing Express middleware stack
  • Edge cases: varying auth contexts, streaming responses, mutating requests

Metadata

Metadata

Assignees

Labels

200-points200 point issueStellar WaveIssues in the Stellar wave programdrips-waveIssues in the Drips Wave programhighHigh complexity issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions