Overview
This issue is part of our current effort to audit the performance and scalability of Onyx.
During the Step 1: Objective Analysis we gathered a list of Perceived Problems we have exclusively about Onyx, that is, the problems in Onyx we imagine or have some evidences that that are pain points / performance bottenecks to Onyx, but we need more analysis to confirm if they really are and, if so, how much of a problem they are currently.
The main goal right now is to deep dive into each Perceived Problem, investigate/audit it and come up with findings, which we will use for the next discussions.
Problem
Our cache layer improved a lot these last months. We are now memoizing our selectors, cache reads are faster, and we are soon going to cache useOnyx snapshots and collections too. We also improved our cache eviction system. But, what else do we need to improve? How the cache performs under high amount of data in memory? Do we need to further improve the eviction system?
Action Items
- Investigate the current cache system (considering all the improvements we have in line) and audit how cache performs under different loads of data in memory, and identify potential problems there we might be missing.
- Evaluate if the current eviction system is enough for us and it’s being really beneficial in terms of Performance.
Relevant Links
Step 1 Canvas: https://expensify.slack.com/docs/T02P6RS2ZK7/F09B668M1MG
Slack thread: https://expensify.slack.com/archives/C05LX9D6E07/p1757416506609919
Overview
This issue is part of our current effort to audit the performance and scalability of Onyx.
During the Step 1: Objective Analysis we gathered a list of Perceived Problems we have exclusively about Onyx, that is, the problems in Onyx we imagine or have some evidences that that are pain points / performance bottenecks to Onyx, but we need more analysis to confirm if they really are and, if so, how much of a problem they are currently.
The main goal right now is to deep dive into each Perceived Problem, investigate/audit it and come up with findings, which we will use for the next discussions.
Problem
Our cache layer improved a lot these last months. We are now memoizing our selectors, cache reads are faster, and we are soon going to cache useOnyx snapshots and collections too. We also improved our cache eviction system. But, what else do we need to improve? How the cache performs under high amount of data in memory? Do we need to further improve the eviction system?
Action Items
Relevant Links
Step 1 Canvas: https://expensify.slack.com/docs/T02P6RS2ZK7/F09B668M1MG
Slack thread: https://expensify.slack.com/archives/C05LX9D6E07/p1757416506609919