Add Storage Policy for Computed KnowledgeSources #75
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.
Add Storage Policy for Computed KnowledgeSources
♻️ Current situation & Problem
Currently, all instances of
ComputedKnowledgeSource
are getting cached. Meaning, the result of thecompute
method is stored in theSharedRepository
and each retrieval will first check if there is a value present before callingcompute
.This reduces the control a
ComputedKnowledgeSource
has on how its value is dynamically computed.This also has the primary drawback that the respective
subscript
has to bemutating get
.💡 Proposed solution
This PR introduces the concept of a
StoragePolicy
forComputedKnowledgeSource
s. By default it is set toStore
but may be adjusted toAlwaysCompute
. Respectivesubscripts
were added to provide the expected implementation.⚙️ Release Notes
➕ Additional Information
Note: This PR is currently still based of the 0.6.0 release.
Related PRs
Testing
Additionally test vectors were added.
Reviewer Nudging
Look the the newly defined protocols and protocol extensions, as well as the updated
SharedRepository
implementation.Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines: