2 ms·
Phoenix creator here. At the very least, this post needs to include the following points: - Phoenix Channels is a higher-level abstraction over raw WS. We spaw
by chrismccord 10y ago
Phoenix creator here. At the very least, this post needs to include the following points:
- Phoenix Channels is a higher-level abstraction over raw WS. We spawn isolated, concurrent "channels" on the underlying WebSocket connection. We monitor these channels so that clients can detect errors and recover automatically without dropping the entire connection. This contributes to overhead in both memory and throughput, which should be highlighted with how Phoenix faired in the runs.
- Phoenix channels runs on a distributed pubsub system. None of the other contestants had a distribution story, so their broadcasts are only node-local implementations, where ours is distributed out of the box
Phoenix faired quite well in these runs, considering we are comparing a robust feature set vs raw ws/pubsub implementations.
- ericlavigne 10y agoAll interesting points. Even without them, Phoenix does great in this benchmark. My takeaways from this article were: 1) Phoenix and Rails are clear winners on API. 2) Rails performance is unacceptable, which makes its nice API irrelevant. 3) All others are good enough that if I wanted to choose them for other reasons, this article wouldn't stop me.
- turnip1979 10y agoQQ .. this might be a naive question so please excuse my ignorance ... why did you not go with vanilla websockets as the protocol? I am a big fan of Elixir and would love to use it and Phoenix for work .. coworkers just get the heebeejeebees when I admit the wire protocol is specifically for Phoenix. Would love to understand this better. Btw .. loved the book!!
- deleted 10y ago[deleted]