Skip to content

[Backend][Performance][P2] Optimize InvoiceUtils Async map Over Items #242

Description

@AnshRaj112

Backlog ID: ISSUE-KMP-100 | Epic: EPIC-04 | Complexity: Small

Description

ISSUE-KMP-100 is a Low severity / P2 priority Architecture issue in @kampyn-backend, under Invoices / Algorithms.

Problem overview

This work item asks the team to: Optimize InvoiceUtils Async map Over Items.

Today the system behaves as follows: Async map without clear concurrency control.

That is incorrect or insufficient for a production multi-tenant platform. After this issue is fixed, the expected outcome is: Batched processing with concurrency limits.

Why this issue exists

Avoid request spikes to DB/remote.

If this remains unresolved, realistic consequences include: Burst load.

This finding is grounded in the technical audit: Audit N+1 invoiceUtils.js:40.

Implementation scope

Concrete touchpoints are listed later in this issue (1 file path(s) and 1 API/function touchpoint(s)). Use those lists during implementation and code review so nothing in scope is missed.

Recommended direction (outcome-focused, not a mandatory design): p-limit style concurrency; batch DB.

Planning

  • Estimated complexity: Small
  • Priority rationale: Moderate algorithmic cleanup.
  • Depends on:
    • ISSUE-KMP-086

Do not treat this issue as independently shippable until listed dependencies are addressed or explicitly waived.

Definition of done

Close this issue only when every Acceptance Criteria checkbox is complete and the Testing Requirements have been run (or waived with written rationale on the PR). The title states the change; this description, the expected behavior, and the acceptance criteria together define success.

Current Behavior

Async map without clear concurrency control.

Expected Behavior

Batched processing with concurrency limits.

Why This Matters

Avoid request spikes to DB/remote.

Evidence From Audit

Audit N+1 invoiceUtils.js:40.

Risk / Impact

Burst load.

Recommended Direction

p-limit style concurrency; batch DB.

Acceptance Criteria

  • Invoice item enrichment uses bounded concurrency

Testing Requirements

  • Unit test

Dependencies

  • ISSUE-KMP-086

Affected Files

  • kampyn-backend/utils/invoiceUtils.js

Affected Functions / APIs

  • Invoice generation helpers

Created from KAMPYN_GITHUB_ISSUES.md

Activity

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

Metadata

Metadata

Assignees

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions