Rethink Project Cache Invalidations
- Dominant language
- Python
- Stars
- 44.8k
- Forks
- 4.9k
- Avg merge
- 21h 10m
- Merged PRs (30d)
- 635
Description
See also: https://github.com/getsentry/relay/issues/5801#issuecomment-4237317774
Currently project config invalidations delete the project config from the cache, trigger the job which is supposed to compute the project config, which then in turn has a debounce.
Instead of deleting the project config we can compute the new project config, and only at the end of the computation override the project config.
This gives us some more resilience when computations start to fail and mirrors the behaviour we have implemented in Relay (failures do not invalidate the cache).
It may make sense to implement some debounce logic generically in taskbroker to facilitate this change.
Contributor guide
Research direction
Start with the project-config invalidation and computation flow, then read the linked Relay discussion for the intended failure behavior. Preserve the existing cached config while recomputation is running or fails, replacing it only after successful computation; determine whether generic debounce support in taskbroker is needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100