feat: New Observability API #27
Merged
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.
Pull Request Type
Issue for this PR
Link: close #17
Description
The current observability API done with AtomObserver has too few functionalities as it just can observe what atom is registered/released/updated and that's it.
It would be better to support more powerful functionalities like accessing arbitrary atom values through a Snapshot structure.
Also, currently Snapshot.restore() can only reset the current value to be the snapshotted value, but it should reset the whole store state to be the snapshotted one to prevent inconsistency.
Impact on Existing Code
The following APIs have been abolished.
AtomObserverAtomRoot/observe(_: AtomObserver)AtomRelay/observe(_: AtomObserver)