News for hackers. Stuff that matters.
Re:Twitch.js by thirdplace_ on Sunday June 05, 2022 @01:00PM (#31632752)
Interesting that twitch still uses IRC as their messaging infrastructure. Wonder how they were able to scale it up.
Re:Twitch.js by grogenaut on Tuesday June 07, 2022 @11:29AM (#31655802)
Clarification: (had been stated publicly before) we speak irc as one protocol option at the edge. We are definitely not running IRC at the edge or infernally.

Source: have worked there for over 5 years.

Re:Twitch.js by Zee2 on Tuesday June 07, 2022 @01:49PM (#31657818)
I'm sure it's infernal.
Re:Twitch.js by boredpudding on Sunday June 05, 2022 @01:49PM (#31633240)
I'm not sure if they actually use IRC internally, it could just be presenting itself as IRC to have an easy API with tons of libraries offering support. Internally, it could translate IRC calls to whatever their internal architecture wants.
Re:Twitch.js by MaxLeiter on Sunday June 05, 2022 @02:13PM (#31633457)
At least a few years ago it was an actual IRC server and has been since justin.tv. I don’t believe they’ve changed it, as irc clients and bots have continued working with no IRC related changes. (I don’t think they’d invest in providing an IRC gateway; it’d be easier to just abandon it)
Re:Twitch.js by matt74827289 on Sunday June 05, 2022 @04:33PM (#31634577)
An article from late 2015 indicates that IRC is nothing more than an API interface and not their underlying system.

https://blog.twitch.tv/en/2015/12/18/twitch-engineering-an-i...

Re:Twitch.js by dayjah on Tuesday June 07, 2022 @10:47AM (#31655139)
I can confirm this. Context: part of the engineering team that worked on the chat infrastructure around this time period.

The history is basically:

- v1: IRC API to process scoped servers (Python backend, haxe front end)

- kept API as we migrated backed to go (via a terrible course through nodejs); this version allowed all participants to be in a room together (ie cross process servers).

- once most of background was on go we migrated the front end (can’t remember to what)

- backend then got revved a lot (a specialized team was convened to work on chat infrastructure full time)

I left in 2017, no idea what has happened since.

Re:Twitch.js by tingletech on Tuesday June 07, 2022 @10:36AM (#31654963)
I thought IRC was just an API interface to begin with? https://datatracker.ietf.org/doc/html/rfc2812
Re:Twitch.js by MaxLeiter on Sunday June 05, 2022 @08:03PM (#31636009)
Huh, cool. Not sure when it changed but https://techcrunch.com/2007/05/22/justin-tv-network-launches... is a source for justintv using IRC
Re:Twitch.js by pineconewarrior on Tuesday June 07, 2022 @10:39AM (#31655023)
I suppose we could dig into that twitch source code leak to confirm
Re:Twitch.js by fulafel on Sunday June 05, 2022 @01:20PM (#31632950)
IRC is pretty scalable as-is, no?
Re:Twitch.js by kolme on Tuesday June 07, 2022 @11:16AM (#31655608)
It is! AFAIK you can have a bunch of relay servers effectively acting as load balancers. In the nineties / early 00s you had large IRC networks with many thousands of users chatting in real time with no issues.

Well, one known issue was a netsplit [1]. But it did work most of the time.

[1] https://en.wikipedia.org/wiki/Netsplit

Re:Twitch.js by TingPing on Sunday June 05, 2022 @04:23PM (#31634499)
They just disable WHO and don't list users in the channel. Otherwise IRC is trivial.
Re:Twitch.js by ev1 on Tuesday June 07, 2022 @10:20AM (#31654725)
They do list users and provide joins and parts if you request the IRCv3 CAP. I've never used IRC before (well before my time) outside of implementing some Twitch overlay stuff for a friend though.
Re:Twitch.js by distantsounds on Sunday June 05, 2022 @03:15PM (#31633961)
considering IRC has existed for 30+ years I'd hope someone has this figured out by now