Skip to content

bug: <short description of the issue> Missing Request Throttling & Cache Protection May Cause GitHub API Rate-Limit Exhaustion #768

@AadityaUniyal

Description

@AadityaUniyal

Description

request throttling
duplicate request protection
response caching safeguards
graceful fallback handling when API limits are exceeded

Because of this, repeated profile lookups or automated requests may rapidly exhaust GitHub API rate limits and degrade application performance.

This can potentially lead to:

slower response times
failed contribution rendering
temporary analytics unavailability
excessive server/API usage
poor scalability under concurrent traffic

Since contribution data is highly cacheable, repeated full API fetches for identical profiles become unnecessarily expensive.

This issue affects both:

application stability
production scalability

Steps to Reproduce

Start the application locally
Generate analytics for multiple GitHub profiles repeatedly
Refresh profile pages multiple times or open them in parallel tabs
Observe repeated API requests being triggered for identical data
After enough requests, GitHub API limits may begin throttling or failing requests

Possible symptoms:

slower rendering
failed contribution loads
delayed responses
API quota exhaustion

Expected Behavior

The application should:

cache repeated profile responses
prevent duplicate simultaneous requests
throttle excessive repeated calls
gracefully handle GitHub API rate limits
serve cached contribution snapshots whenever possible

Expected improvements:

improved scalability
lower API consumption
faster response times
better production stability

Screenshots / Logs

Currently no direct logs attached, but GitHub API rate-limit headers and repeated network requests can be observed during heavy repeated profile generation.

Potential improvement areas:

Redis/in-memory caching
stale-while-revalidate strategy
request deduplication
API quota monitoring
graceful fallback responses

GitHub Username (If applicable)

AadityaUniyal

Environment

Chrome

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions