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

Make entity controllers as persistent as possible #211

Open
DavidLeoni opened this issue Mar 31, 2016 · 0 comments
Open

Make entity controllers as persistent as possible #211

DavidLeoni opened this issue Mar 31, 2016 · 0 comments

Comments

@DavidLeoni
Copy link
Member

Currently ODR controllers for etypes, concepts, and in particular entities are supposed to be mutable and deletable, but this brings several design issues regarding traceability and persistence. Immutability and infinite persistence would solve many of them, and some work for it is on hold in TraceProv library (see TraceData and TraceDb)

Adopting TreceProv library would be of course a large change - for the time being especially for EntityController we can settle for this:

entity creation

For entity creation we have two different urls, one temporary for the new and one provided from the server when the entity is created, so we can right now easily create a copy of the controller.

entity read

This is more problematic, change of the controller can happen during entity cache refresh because the entity url is the same. So i.e. export reports might show latest entity information while actually they should show info about the entity at the time of the export.

entity update

This is even more problematic, but luckily we don't support it now.

entity deletion

Upon creation, controllers marked as new are currently deleted. Mmm not good! Better to keep them and start enforcing infinite persistence ( although this will clutter memory in the long run as ekb stays full in-ram!! See #210).

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