-
Notifications
You must be signed in to change notification settings - Fork 23
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
Retrocausality is possible #7
Comments
Note that since GlueKit implements transactions with dirty reads (issue #2), the state of the system is immediately updated and remains consistent; it is only the change notifications that may arrive out of order. |
I can imagine e.g. A quick reading of the source indicates that's not the case, but correct reasoning about causality may easily become a casualty of such an overly casual approach. |
My hunch is that this is a complete non-issue, as long as newly registered observers will not see outdated changes that were already applied to the state at the time they registered. |
Issue #5 disallows updates to an Observable from inside its own observers, but observers may still synchronously modify the state of other parts of the system.
This means that an observer to variable
a
is free to directly update the value of variableb
, causingb
's observers to be notified of the change immediately, even thougha
may not have finished notifying all of its observers of the original change. If an object was subscribed to both variables, it may thus receiveb
's notification before it sees the change toa
that caused it — it may observe the effect before the cause!Such retrocausality is against FRP's principles, but it may not actually cause serious problems. Find out if it needs to be fixed.
The text was updated successfully, but these errors were encountered: