The state of Streamcord

Akira
Streamcord
Published in
3 min readFeb 8, 2020

--

Streamcord was made to give people an easy way to get Twitch stream announcements. Our goal, from the start, has been to give everyone a product that just works consistently. Over the past few months, we haven’t been able to deliver this to our users.

This kind of unreliability is absolutely unacceptable. Having a functional Discord bot for integrating with Twitch is important to every single one of our users, from streamers, to fan communities and teams. We know that you expect a reliable service, and we’re sorry that we’re falling short of demand.

Since Streamcord was released, the amount of growth has been insane. At the time of writing this, there are about 72,000 servers that have added the bot. That’s insane, considering that Streamcord first went public in November of 2017.

Where the problem begins

This section contains a lot of technical lingo. Feel free to skip to the next heading if you want.

It all starts in the depths of Streamcord’s source code. A large amount of code that was written two years ago — back when I was a less-experienced programmer — is still in use today.

We’ve also run into several infrastructure problems along the way. To run efficiently, Streamcord needs these essential things:

  • Lots of single-threaded CPU power
  • A high-speed network connection
  • A reliable database connection

Since its initial release, the bot has been running on a single Dell PowerEdge r610 server that sits in an extra room in my house, which has a 60mbps down & 5mbps up internet connection. Not good. I’ve definitely considered moving the bot to a more “professional” environment, but have struggled to find a good hosting provider that would be able to provide comparable hardware for decent pricing.

The database, Pro bot, Lavalink, and webhook server all run on a Contabo VPS. I absolutely love Contabo’s prices, ease-of-use, and reliability ever since I started using them. Unfortunately, they don’t have any “CPU-optimized” server plans, so therefore I can’t use their services to host the main bot.

Another problem with Streamcord is that bugs are extremely hard to debug. It’s near-impossible to track every single live role, notification, and webhook event in existence because so many events happen. Problems are hard to isolate and keep track of. When a user reports an error, we usually have no idea what exactly is going on, or even how to fix it. It’s especially hard to keep up with the influx of reports since I’m a one-person dev team.

What’s going to happen to Streamcord?

Currently, I have plans to completely rewrite the bot (which includes live role and legacy notifications), as well as the webhook server (the service that processes webhook / beta notifications). There’s already considerable progress on both of these projects, and we should hopefully see release candidates available for public testing fairly soon.

In order to avoid the same problems as before, the new services will be optimized for the following things:

  • Scalability. Scaling services to meet increasing demands should be easy.
  • Metrics & error reporting. We shouldn’t have to rely on users to report errors in order to be aware of them.
  • Reliability. These services should be able to stay online for days at a time without needing to be restarted.

I am absolutely trying to avoid the same fate that several other similar bots (Now Live, Mewna, and CouchBot) have received. Streamcord will continue to stay online for years to come.

I know this post has been kind of technical, but hopefully you now have a better understanding of what’s happening, and we haven’t been ignoring everybody’s feedback.

As always, thanks for reading!

--

--