Live data from Hacker News

Riot Games Messaging Service

engineering.riotgames.com

11–20 of 39 posts

Re: Riot Games Messaging Service

#11
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.

Re: Riot Games Messaging Service

#12
post #11

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.

Looks like a load issue, a single server can only take care of so many conn, auth, etc... So having several solves the problem and can scale horizontally easily, but each edge maintains conn information, so a given user needs to be routed to that same server every time. On the other hand, all LBs share a single address and all should be replaceable by each other, they exist purely to route the user to the right edge server (existing conn or least busy).

Question to OP: do you run your edge servers in pairs or some kind of cluster?

Re: Riot Games Messaging Service

#14
post #8
post #3

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. [1] https://riot.im/

Off-topic: do you guys at matrix/riot have a bot that automatically creates a ticket when it finds keywords such as {IRC|messaging|chat} in any hn thread without any mention of {riot.im|matrix.org} URL being also in the comments? Honest question. Isn't there a publicly hosted database of hn comments so someone could make stats on this topic? I'm sure you are close to 100% match.

The only folks who work on matrix/riot who comment on HN are basically me (project lead) and sometimes jkire (synapse maintainer). And we don't plug the project, but respond to stuff like this & questions when they come up.

Anyone else commenting about Matrix are doing so completely independently and without any input or knowledge from the actual dev team. For instance, I have absolutely no idea who sanqui is (although I share their concern that Riot Games moving into the messaging space is awkward).

We are categorically not spamming or sockpuppeting HN: I'm afraid that folks who bring Matrix up must be doing so because they're interested or enthusiastic about the project and consider it relevant (which unfortunately it is on this thread, albeit for the wrong reasons :|)

Re: Riot Games Messaging Service

#15
That's am impressive bit of technology, and nice to see it's making extensive use of Erlang (we're using Elixir).

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?

Matt Ably realtime - https://www.ably.io

Re: Riot Games Messaging Service

#16
post #13

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

Probably that services aren't required to use JSON (since they use many different service languages, it's not unlikely that they use many different serialisation methods - JSON, protobuf, etc.)

Re: Riot Games Messaging Service

#17
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.

Original question: Can someone explain to me why the JSON message sent to the REST interface seems to contain URL and Type as data?

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?

Re: Riot Games Messaging Service

#18

That's am impressive bit of technology, and nice to see it's making extensive use of Erlang (we're using Elixir). 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…

Riot accounts are tied to different geographical regions, so I would expect the service doesn't have to span across them, http://leagueoflegends.wikia.com/wiki/Servers

Re: Riot Games Messaging Service

#20
post #13

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

Separation of concerns: the code handling the envelope doesn't need to know about the format of the payload. The JSON in that payload will only be encoded (on the sender) and decoded (on the recipient) once.
Post reply on HN