Replies: 1 comment
-
I think what would be a good action item here is to clearly describe WHAT methods are invoked on what threads/event loops/etc. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
An incoming web request may subscribe and unsubscribe to a message bus.
Conceptually, that subscription is bound to the scope of the web request.
One of the reasons why I think the current implementation is a bit buggy is because of the shared internal state, especially stuff like the redis backend which has a single thread for subscribing.
It's extremely tricky to redirect those events back to the correct event loop unless the callback itself stores that information, in other words, multiplexing multiple clients into a single
pubsub_adapter
is extremely tricky.I think a single global server doesn't really make sense for Falcon.
We can certainly wrap an internal per-thread instance in the existing interface. The reality is though, when a request comes in, we are basically resolving
ActionCable.server
per process and it currently feels like an extremely unnatural choke point (global state).Beta Was this translation helpful? Give feedback.
All reactions