Improve ETag performance
- Dominant language
- Java
- Stars
- 593
- Forks
- 123
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 4
Description
We should improve the ETag performance.
# Node ETag
The ETag gets computed by checking the following values/references:
* branch -> UUID
* parent node (for branch) -> UUID [**node events**]
* container (for lang, branch, version) -> container ETag [**node events**]
* various query params (resolve links, expanded fields)
* Tags of the node -> Tag ETags [**node tag events**]
* Node children -> amount, schema name [**node events**]
* container lang -> Lang [**node events**]
* breadcrumb [**node events**]
* resolved paths [**node, project, branch events**] (due to branch hostname)
* role permissions [**role, user, group events**]
# Option 1 - ETag Cache
* Implement a global ETag cache which returns the value if present
* Invalidate the cache by registering on the eventbus. Events which indicate that element have been updated could invalidate the ETag cache.
* Check whether it would be possible to generate a list of element that had to be checked to generate the ETag. Invalidate the cache entry if any of the listed elements for the ETag gets modified.
Contributor guide
Assessment
This issue has not been assessed yet.