October 19, 2016

A “Chat” with the Twitch Chat Team [TwitchCon 2016 Panel]

A chat with the Twitch chat team TwitchCon 2016

For the complete list of panels, check out the main TwitchCon 2016 Panel Recap post.

VoD link: 
FrankerZ Theater Day Two
Moderator: Glacials (Ben Carlsson)
Participants: Will Roberts, Irelandofendor (John Rizzo), fancywindow (Zach Goodman)

  • What we make:
    • Chat
    • Friends/presence
    • Whispers
    • Host Mode
      • Fun fact: Host mode was made in one night.
    • Notifications
    • Emotes (make the code, not the emotes)
  • Recent stats
    • 46 Billion messages delivered per day
    • One tiny chat message from you transfers into hundreds of thousands.
  • Are you guys working on automated tools to deal with trolls?
    • Trolls can be creative by misspellings to work around filters and such. There are things being worked on to deal with this (no specifics though).
  • As a bot operator, is it better to connect many sockets to TMI or one socket?
    • There are rate limits in place to limit things like how many rooms you can join for one connection. Historically they’ve asked people to create many connections to chat servers but with some verified bot accounts there is another solution in place for just receiving the messages. Hoping to roll that out more widely. For now, many connections is better.
  • What percentage of Twitch users use chat?
    • About 50% of logged in users will chat at least once a week
  • Do you guys have plans for expanding chat delay to help manage spoilers?
    • Two different cases:
      • People who know they’re spoiling
        • Testing with black out text that’s available on hover/click
      • People who don’t know they’re typing in something unwanted.
        • Comes down more to delay/moderation + Bot tunings to catch key words.
        • Spoilers by trolling should be detered by time outs/moderation.
        • Adding tools like channel rule acceptance before chatting.
  • What are planned APIs related to chat?
    • Don’t have imminent plans for releasing certain chat APIs
    • Willing to explore different uses for chat to expand APIs
  • What are the resources required to run chat?
    • Have a large pool of fixed resources at the moment.
    • A large fleet of servers used.
    • Has to stay over-provisioned for spikes in traffic.
    • TMI load tester to spam thousands of emotes to test on a server.
  • What is the Chat team’s thoughts to Franker faces and extensions such as BTTV?
    • Think it’s great that people are so invested in Twitch to make tools to help fix it.
    • Draw inspirations when people develop extensions that expose a gap in their own product.
    • Always on the look-out for good ideas from anywhere they come.
    • Support a healthy 3rd party development ecosystem but…
    • They try to be conscious of those good ideas that may not “play nice” with their own system when updates come out.
  • Feature flags?
    • Still a risk deploying new code like true production environment.
    • Used internally for staff beta testing.
  • Integrating keyboard for emotes into IOS/Android?
    • Yes. Has been considered. ‘Nuff said.
  • Thoughts on combining chats from different streams?
    • Interested in new ways to mix chat. The more people chatting = more people building relationships.
    • Looking for new product solutions to accomplish this.
  • With the many badges/loyalty symbols currently available, will there be a way to differentiate/filter them via multiple chats?
    • They are moving in that direction with the badge system.
    • Hopes to use the badge system to surface a wide range of information about users and their interaction/loyalty to streamers.
    • Always interested in being able to make stronger identity on Twitch; make it visible and available to broadcasters.
    • Badge system is in its infancy. Can anticipate many more badge/class related things.
  • Plans for public API regarding badge systems?
    • Nothing at the moment.
    • Only internal/private API for their use.
  • What’s being done to manage scalability issues?
    • Most of the stack is “home grown”
    • No fancy queuing system on the back end
    • Has systems built on HTTP mostly for backend systems with controls that throttle traffic.
    • Lots of small tricks that let them deal with things like random failures and crazy impulse events.
    • In the end they just try to keep up using dashboards, pagers, alerts. Lots of uptime.
    • Rate limiting fine tuning is in the works.
  • Are there any plans to add a feature for directing your viewers to the proper chat when you host someone?
    • Always looking to improve interface.
    • Recently changed the page layout to show if a streamer is hosting someone at the top where they can hit a button to go to that channel.
    • Has to have a balance of giving viewers the option to opt-in to those kinds of things while preventing negative abusing situations.
  • Thoughts on Rooms?
    • Like rooms very very much.
    • Looking to create better chat experiences and rooms are a good example of that.
    • Would like to bring it out from the corner in the future and make it more noticeable.
  • Ever think of using something other than IRC protocol?
    • At some point in the future, Twitch won’t be 100% IRC but will always support it.
    • It was easy to use starting up and also it is easy for third party developers to interact with.
  • Have you ever screwed up big time?
    • Definitely have screwed some things up. Nothing too major though. The usual bugs.
    • Glacials – While on the web team, brought down the channel page for logged-in users for 45 minutes.
    • Accidentally added an emote code that was just “s”.
    • It is less of writing perfect code. More implementing ways of preventing bad code from getting to the public.
    • Code can become “buggy” over time as more users stress the system even if the code wasn’t buggy initially.
  • What’s your favorite emote?
    • Will – PogChamp + wixL/wixR (witwix)
    • Irelandofendor – cornBlack (Stinkycheeseone890) + 4head
    • Fancywindow – PJSalt
    • Glacials – snarfBoo + PogChamp
  • Any plans to hide bot commands client side?
    • Yes it is being looked into.
    • In busy chats, want to reduce unnecessary content to the majority.
  • What is a typical day for the team?
    • Will – Working on chat stuff while watching streams on another monitor.
    • Fancywindow – Exciting to think about how to make chat more fun. Sometimes it’s speccing out a new feature, sometimes it’s bringing partners/teams in to test new features. It varies a lot.
    • Irelandofendor – The one thing that’s consistent is that we get to think about Twitch viewers on a day to day basis. I think of myself as a user first and staff member second. Get to think about people rather than just the software.
  • What kind of metrics are used to gauge success?
    • Want to see people get value from Twitch on a consistent basis.
    • An important thing is are you interacting socially on Twitch frequently?
    • Look at macro metrics of “are people participating socially and building relationships?
    • Also look at micro level of how X may change if Y changes.
  • Have you run experiments in sentiments in chat? Who’s happy, who’s sad?
    • Very interested in but don’t have proper tools to gauge sentiment yet.
    • Sentiment analysis is important. Hard to do currently with the scale of Twitch.
  • What was the thought process of switching from Python to Go?
    • Python is great for building software quickly but not good for the scale of Twitch.

Subscribe to Our Newsletter

Get the latest streaming news, tips, and exclusive opportunities

We don’t spam! Read our privacy policy for more info.