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

SwiftUI Visualization App #50

Open
ktoso opened this issue Aug 25, 2020 · 0 comments
Open

SwiftUI Visualization App #50

ktoso opened this issue Aug 25, 2020 · 0 comments
Labels
1 - triaged Task makes sense, is well defined, and is ready to be worked on help wanted Extra attention is needed i:metrics i:tracing
Milestone

Comments

@ktoso
Copy link
Member

ktoso commented Aug 25, 2020

It would be fantastic if someone with better SwiftUI skillz than myself could help contribute a SwiftUI based visualization for those protocols, initially SWIM. It'd be a fantastic learning resource, very useful to explain how the dynamics of the protocol work etc.

This also shows how Swift is uniquely positioned to make such small helper / visualization apps for projects one is working on, which is kind of unique among other dist systems languages.

We'd want a visualization similar to what ShiViz is able to do:
Screen Shot 2020-08-25 at 11 14 20

https://bestchai.bitbucket.io/shiviz/


So we'd want a "timeline" for each node, and lines between nodes when they perform sends to eachother.
The lines should represent message sends, and dots the messages;

We can store the membership on every such call as well, and thanks to that we could on mouse over on a given node see what currently is the membership state on it.

This would likely want to use swift-tracing I suppose, though in reality the sequenceNumber is enough to perform the correlation, especially in SWIM where the messages are very simple and well known.

It would be great if we could build this as some form of visualizer.emit(message) since then we can implement it as an Instrument (from swift tracing) (!) most likely, and running with the visualizer would be the same as running any normal app but with the visualizer "enabled" (i.e. the VisualizerInstrument bootstrapped).

Happy to discuss ideas!

@ktoso ktoso added 9 - maybe someday Ticket is valid but unlikely to be worked on soon; If you'd like to help it happen, contribute! help wanted Extra attention is needed i:metrics i:tracing 1 - triaged Task makes sense, is well defined, and is ready to be worked on and removed 9 - maybe someday Ticket is valid but unlikely to be worked on soon; If you'd like to help it happen, contribute! labels Aug 25, 2020
@ktoso ktoso added this to the x - Future milestone Aug 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 - triaged Task makes sense, is well defined, and is ready to be worked on help wanted Extra attention is needed i:metrics i:tracing
Projects
None yet
Development

No branches or pull requests

1 participant