Live data from Hacker News

Riot Games Messaging Service

engineering.riotgames.com

21–30 of 39 posts

Re: Riot Games Messaging Service

#21
post #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

Correct, a "North American" account would not be able to message or otherwise interact with a "Oceania" account (the region which contains Australia). That being said, an Australian could register an NA account, but shouldn't expect bearable ping/latency.

Re: Riot Games Messaging Service

#22
post #6

Nice to see yet another game studio making use of Erlang.

I thought the post might shed more light on their use of Erlang for this service, but it focuses more on high level topology, AWS infrastructure, and load balancing. It's interesting to get a sense of the level of high level deployment tooling they used, because in a way Erlang marketing gives the impression that the language and VM are all you need.

Re: Riot Games Messaging Service

#23
post #22
post #6

Nice to see yet another game studio making use of Erlang.

I thought the post might shed more light on their use of Erlang for this service, but it focuses more on high level topology, AWS infrastructure, and load balancing. It's interesting to get a sense of the level of high level deployment tooling they used, because in a way Erlang marketing gives the impression that the language and VM are all you need.

There are some presentations from Wooga about their use of Erlang.

http://www.gdcvault.com/play/1016648/Why-Erlang

Re: Riot Games Messaging Service

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

For some reason, in the comments section of HN/Reddit, it's become vogue to chime in that you confused a headline for something else. Alternatively starting with "heh, I read that as ..."

Yes. I, too, have heard of that other thing...

Re: Riot Games Messaging Service

#25
post #22
post #6

Nice to see yet another game studio making use of Erlang.

I thought the post might shed more light on their use of Erlang for this service, but it focuses more on high level topology, AWS infrastructure, and load balancing. It's interesting to get a sense of the level of high level deployment tooling they used, because in a way Erlang marketing gives the impression that the language and VM are all you need.

FWIW, here's a earlier post about chat architecture and talks a bit more about how it uses Erlang.

https://engineering.riotgames.com/news/chat-service-architec...

Re: Riot Games Messaging Service

#26
post #8

Earlier quoted context omitted.

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 (althou…

like Always_Good said before you, it's just an in-trend for readers to mistake headlines.

Re: Riot Games Messaging Service

#27
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…

Not the OP, but I work on the same team.

The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.

Re: Riot Games Messaging Service

#28

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…

It does work across multiple Riot regions, however it's meant for applications which can tolerate a little (~1 sec) latency. So we didn't really need to address that concern.

(I work on same team with Michal)

Re: Riot Games Messaging Service

#30
post #27

Earlier quoted context omitted.

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…

Not the OP, but I work on the same team. The edge servers are not clustered and share no state. We require at least 2 servers as minimum for fault tolerance.

Did the need for edge server arise from the fact the a service like https://aws.amazon.com/elasticloadbalancing/applicationloadb... didn't exist back then ?
Post reply on HN