Rewriting actor state caching mechanism #1473
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The mechanism used to perform actor state caching was just about impossible to actually test and there is more than one issue indicating that something is wrong with how it's working. There are no current unit tests validating the entire caching mechanism and only one unit test for each of the get and set implementations (mostly validating TTL) on the actor state with its provider.
As there's a lot going on with the caching system through the actor state manager, it's been refactored out to a separate type that's far more easily maintainable and testable. I've written a collection of unit tests against the cache and am still working to build out still more unit tests to validate the
ActorStateManager
and then some E2E tests to validate and prove out both #1467 and #1471 as resolved (or otherwise identify where the issue lies).As an added bonus, I've re-implemented each of the associated and new files to use nullable annotations on a per-file basis to get that effort underway.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #1467 and #1471
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list: