--- issue: 125 title: "Backend: getCategoryPath unbounded sequential findById loop" severity: low domain: Marketplace labels: [performance, backend] status: open created: 2026-05-30 source: Full Codebase Audit 2026-05-30 --- # Backend: getCategoryPath unbounded sequential findById loop **Severity:** low **Domain:** Marketplace **Labels:** performance, backend ## Description `CategoryService.ts:142` builds a category breadcrumb path by looping and calling `findById` once per ancestor level. For a 5-level category tree, this is 5 sequential DB round-trips per request. ## Options 1. Load all categories once (already cached) and walk the tree in memory. 2. Maintain a denormalized `path`/`ancestors` field on each category. 3. Leave as-is for shallow trees. ## Recommendation Build the path from the in-memory category cache; consider a denormalized `ancestors` field for deeper trees. ## Affected Files - `backend/src/services/marketplace/CategoryService.ts:142` ## References - [Full Codebase Audit 2026-05-30](../09%20-%20Audits/Full%20Codebase%20Audit%20-%202026-05-30.md) — DEC-47