Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework or extend the scope API as a session. #59

Open
sageserpent-open opened this issue Apr 13, 2019 · 1 comment
Open

Rework or extend the scope API as a session. #59

sageserpent-open opened this issue Apr 13, 2019 · 1 comment

Comments

@sageserpent-open
Copy link
Owner

sageserpent-open commented Apr 13, 2019

The implementation work in #16 has introduced the concept of working in a session, where data is loaded on demand from the backend storage in the session.

This isn't exposed in the client API, so clients are not aware that conducting a long interaction with a scope can result in many separate loads from the back end storage, any of which may unexpectedly fail due to hardware issues, network errors, etc.

Perhaps the API should reflect this, although given that a client can only query a scope, maybe it isn't so important. Anyway, this issue is here as a reminder that it needs thinking about.

@sageserpent-open
Copy link
Owner Author

sageserpent-open commented Apr 13, 2019

A test for applicative laws conformance in 'BitemporalBehaviours' was disabled in 0b56104 - this is down to a failure introduced by the leakage of imperative behavior of the backend storage affecting the equality test between bitemporal instances when they are rendered by the equality check.

Sorting out a session for working with scopes would solve this issue, or alternatively the 'Bitemporal' type could be cutover to being a proper Cats free monad, so the testing is claimed for free, courtesy of Cats' own testing.

Either way I'll leave it here as part of this issue to pick up that technical debt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant