Performance improvements
Here are a few suggestions I've been thinking about while developing with hyperstack
Any cable go: https://docs.anycable.io/v1/#/ruby/rails A drop in replacement for the action cable server integrated into rails. Much much faster, and less resource intensive as it's written in go. Integrated in 15 minutes and no currently problems found yet. Good candidate for a default choice for action cable in hyperstack.
Actioncable web worker: I think it would be good to move actioncable into a web worker, as it will move data fetching (and eventually processing) off the main thread leaving mainly dom updates. (Should be a lot faster. Partially inspired by https://github.com/neomjs/neo)
For the web worker, I am making a note of the places in the code where I would need to make changes, or be aware of. @catmando please add anything I've missed:
https://github.com/hyperstack-org/hyperstack/blob/edge/ruby/hyper-operation/lib/hyper-operation/transport/client_drivers.rb#L282 https://github.com/hyperstack-org/hyperstack/blob/edge/ruby/hyper-operation/lib/hyper-operation/transport/client_drivers.rb#L108 https://github.com/hyperstack-org/hyperstack/blob/edge/ruby/hyper-operation/lib/hyper-operation/transport/connection.rb https://github.com/hyperstack-org/hyperstack/blob/edge/ruby/hyper-operation/lib/hyper-operation/transport/hyperstack_controller.rb
If I can make the changes inside actioncable without changing the external interface, the touchpoints of change in the hyperstack codebase should be small for now.
@catmando any additional suggestions/notes?