Skip to content

perf(project-details): optimize loading and conditional caching [3/5] - #187

Open
Anthony Cintron (prbatero) wants to merge 1 commit into
prbatero/feat/perf-data-layer-corefrom
prbatero/feat/perf-project-details-api
Open

perf(project-details): optimize loading and conditional caching [3/5]#187
Anthony Cintron (prbatero) wants to merge 1 commit into
prbatero/feat/perf-data-layer-corefrom
prbatero/feat/perf-project-details-api

Conversation

@prbatero

Copy link
Copy Markdown
Contributor

Summary

Part 3 of 5 in the project layer-loading performance stack. Replace the endpoint’s nested storage reads with tested keyed orchestration and add real conditional response caching.

Changes

  • Move project-detail loading and assembly into ProjectDetailsProcessor.
  • Preserve legacy artifact and validation joins by storage identifier.
  • Batch validation and artifact reads through the PR 2 primitives.
  • Add a bounded process-local TTL cache with same-key single-flight behavior.
  • Support ETag/304 responses and explicit Cache-Control: no-cache refreshes.
  • Hoist label loading in GenerateProjectStats and handle unlabeled layers.
  • Expose ETag and performance headers through the local API proxy.

Testing

Stack

Review Notes

The cache is bounded and process-local, not distributed. A fresh matching ETag avoids storage work; after TTL expiry the representation is reloaded before returning 304.

Move project-detail orchestration into a keyed processor, preserve legacy storage-key joins, batch related reads, add a bounded process-local single-flight cache with ETag and refresh semantics, and cover the API contract and stats path.
@prbatero
Anthony Cintron (prbatero) requested a review from a team as a code owner September 1, 2026 17:38
@prbatero Anthony Cintron (prbatero) changed the title perf(project-details): optimize loading and caching [3/5] perf(project-details): optimize loading and conditional caching [3/5] Sep 1, 2026
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