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

Support custom listening/interception of mutations #87

Open
mikegai opened this issue Jun 15, 2017 · 0 comments
Open

Support custom listening/interception of mutations #87

mikegai opened this issue Jun 15, 2017 · 0 comments
Projects

Comments

@mikegai
Copy link
Member

mikegai commented Jun 15, 2017

Would be good to have listeners on or custom functions for then, insert!, insert-unconditional!, retract!

At least four potential use cases:

  1. Integrate in a parallel eav store (i.e. Datascript) for dynamic pull queries. User-supplied functions could perform mutations on a Datascript store at the same time as mutating Clara's session which would make them synchronized. This could relax the need for precept (while growing) to have an answer for every use case.

  2. Server synchronization streams: Streaming to server might be easiest to handle as listeners/interceptors on mutation stream

  3. Completely different streaming way to update view

  4. Custom truth constraint maintenance (extend/tweak/relax constraints imposed by our schema implementation)

Note: we may want at some point mutation events themselves to pass through the rule system as action/commands (or something like them) so that rules can operate over not just "current state" (as now) but over the change events themselves. This could solve the above in a different way.

We may split this issue into listeners vs. custom mutation functions if we decide one way or the other or both.

@alex-dixon alex-dixon added this to Nice to have in Roadmap Jun 25, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Roadmap
Nice to have
Development

No branches or pull requests

1 participant