That's am impressive bit of technology, and nice to see it's making extensive use of Erlang (we're using Elixir).<p>I'd be interested to know if the service works across multiple regions though. Some of the biggest challenges we've faced when engineering our realtime platform has been in having no single point of congestion and effectively peer-to-peer routing within the cluster. This is not that important if all your servers can be in a single region, however if you want your users in Australia for example to have a similar latency profile to those in USA, then clients in Oz need to connect to servers in Oz and all routing for customers in Oz does not need to traverse continents for other customers in Oz, but does for customers in US. I'd be interested to know if that was tackled in the design. Michal you following this thread?<p>Matt
Ably realtime - <a href="https://www.ably.io" rel="nofollow">https://www.ably.io</a>
I realize the article isn't actually about a chat service, but I continue to be confused because there exists Riot[1], the messaging client of the Matrix network.<p>[1] <a href="https://riot.im/" rel="nofollow">https://riot.im/</a>
Edit: Upon more careful reading, it appears that a response is sent from the server to the client via WebSocket which contains the resource and method that the client can request using HTTP if it wishes to update.<p>Original question: Can someone explain to me why the JSON message sent to the REST interface seems to contain URL and Type as data?<p>Is it because they are transmitted using web sockets but the concepts of "resource" (ie: clubs/v1/clubs/665632A9-EF44-41CB-BF03-01F2BA533FE7) and "method" (ie: GET) still just make sense and happens to be very similar to HTTP?
This article reminds me of a previous HN post. The program discussed was called pushpin or pinpush.<p>These solutions are the glue between stateless and stateful services. I guess they will become increasingly important as some services specialize towards responsiveness. The use websockets or http2 without giving up the simplification provided by restful architecture.
wondering why they have the edge nodes and not just a load balancer. looking at their responsibilities it looks like a lot of the overlap with the responsibilities of a load balancer.
Their JSON have an key called payload which saves a String rather than an Object, is there any benefits to doing this? since they also escape the " in the String
I'd like to see more info on their customized Erlang/OTP mnesia . michalptaszek mentioned it in the comment: <a href="http://disq.us/p/1gltwfs" rel="nofollow">http://disq.us/p/1gltwfs</a>
Do people use zeromq for this kind of work? It seems the various socket types are tailored to building such load balancing and routing architectures, but I'm not aware if zeromq is in use at this scale.