-
-
Notifications
You must be signed in to change notification settings - Fork 318
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
Shared State between users #3875
Comments
Yeah! We do have quite a few other examples that this is something that would be useful, e.g. Zen Tracker, but also Interrupt trackers. What makes those more complicated is that there is a need for everyone to communicate to everyone. Now, where I think you are correct is that "state" is the right primitive for communication. That is often communication in distributed systems is often modeled as each participant sending events to each other. But I doubt people would be able to write reliable software on top of that, due to the unpredictable order in which events might come in. With states, it's much more likely that people automatically write code that only depends on the state, and not in which order events came in. When I think about that kind of feature, I think of it as the final frontier but maybe that's just how I think about it, and maybe there's some kernel of it that can be implemented. The way I think about it, and I'm really talking about things that I normally don't even mention because they are that far outside of any reasonable timeline. One my next features that I have already talked about is the visibility rewrite and the eventual deprecation of a lot of trigger checks. E.g. instead of having the trigger checking for "remaing <5s, or stacks > 2", that's a job for visibility checking. This gets rid of the "show" member in the state. With that, many triggers essentially create duplicated states, which brings me to one of the further refactorings. The "state universe", that is many triggers don't need to create states, instead there's a tree of "potential" states in the state universe, e.g. Spell Cooldowns I do have some more thoughts on that, and lots of things that are complicating that picture. E.g. custom code (argh), buff trigger (argh^2) which complicate that picture. And most triggers will just subscribe to these states. The states only track what they need to track if someone is subscribed. And crucially the triggers don't copy the data into their state, they simply refrence the state from the state universe. (Note a lot of code in WA can actually be modeled as subscribers on states.) Which then brings me back to your idea, I think that then fits the model perfectly as a "remote state tracking", so e.g. That then would translate for the "raid leader" aura, as the raiders get a simple aura that subscribes to Remote/raid1/custom/uid(?)/state. And the raid leader has a aura that publishes its state to the path /custom/uid(?)/ There are plenty of complex questions, but that's how I envision that area evolving. Now to your cons my answer to them:
|
ah, that's a good way to model the idea, though i don't think it's a prerequisite for this feature. ...we may actually want to build up the bones of such a state tracking system using custom shared state. might be a good playground to learn the pitfalls, and then later teach other trigger systems how to employ the same bones |
Is your feature request related to a problem? Please describe.
There are a fair number of auras which have a dependency on something like AngryNotes or ERT to essentially replicate the raid leader's configuration to the raiders without having to go through the trouble of publishing new aura versions every time you adjust your strategy on a boss.
So my thinking is, since this is a thing our users do, why not support this in house?
Describe the solution you'd like
In the simplest possible implementation, an option somewhere which when enabled, asks you to select who the "source of truth" is for the state (by default, make it raid lead), and also provides a code box for user to write data into, akin to TSU custom variables.
WeakAuras would then, for each of these auras, disseminate the truth source's state to other group members, whose auras would then receive an event with the updated data.
Pros:
greater dominance of WeakAurasusers potentially have access to tools they wouldn't otherwise think to findCons:
The text was updated successfully, but these errors were encountered: