Meteor vs Elixir/Phoenix Where Latency Is Critical


#1

I’m still very new to Meteor and just become aware of Elixir/Phoenix.

I’m looking to build an app where low latency from server to client is critical.

As near as I can tell, Meteor uses collections that update realtime client side while they sync server side… while this gives a good user experience, what I need is fast latency between server/client.

With that in mind, anyone with experience in Elixir/Phoenix & Meteor please chime in here.

What’s going to give me the lowest latency from client to server & visa versa?

If Elixir/Phoenix gives lower latency, am I going to lose out on development time & future maintenance in your opinion?

…are there enough tutorials/documentation for Elixir/Phoenix to make it a viable choice right now?


#2

Meteor’s automatic updating/pub-sub mechanism isn’t optimized for latency - it’s more for a consistent and collaborative UI experience. For example, you wouldn’t want to build a realtime multiplayer game on Meteor, but you could build the scoreboard and lobby system for it.

I’d suggest building the latency-critical parts of your app in some technology optimized for that use case, and perhaps build the rest in Meteor if that makes sense for you.


#3

Checkout this interesting thread about Elixir/Phoenix.


#4

Go, Erlang, or Elixir will give you some of the lowest latencies. They’re typically measured in micro-seconds in Erlang/Elixir. As an example an Elixir API on the same coast was responding within 14ms. At full load it only climbed to 16ms


#5

This is one of the points that make Elixir a very strong choice for low latency applications.

WhatsApp was written in Erlang which is what allowed it to manage 2 million connections per server while maintaining low latency.

Phoenix is built to be maintainable. It has no idea of micro-service architecture because it is inherently a micro-service framework which means it can be built on top of and maintained easily. I would say that learning Elixir would probably take the most time. Javascript is slightly more difficult than english whereas the syntax of Elixir is better than Erlang but not as easy as javascript.


#6

I though of this while watching this video on OTP, this clip is queued up to the part explaining how microservices work with gen_server:


One of the big themes in Erlang/Elixir is pattern matching. If you understand ES6 destructuring you’re 90% there… it’s basically a more advanced version of that. No objects, just functions in modules. If anything I recommend it to learn how to write better JavaScript.