Welcome to Stream Hydra!
A project built by Liam and Elliot.
Inspiration
We came up with the idea for Stream Hydra when we started streaming on Twitch and had to spend hours adding bots and individual integrations to our channel for better viewer interaction when all we wanted was to go live. For example, it was a painful process trying to find different tools and extensions for creating custom channel point rewards and handling their redemption. We found a few integrations only to discover they didn't perform how we expected, or required multiple integrations just to achieve one goal. Understandably, there are limited customisation options available on each tool meaning it's hard to cater for everyone's individual ideas. As developers, we had a few streamers approach us asking to add specific integrations to their channel; our response was always "we would have to build you a custom solution". So Liam and I had an idea: an all-in-one platform that could handle complex and specific integrations on Twitch channels.
What it does
Stream Hydra is an automation platform designed with every streamer in mind, no matter how big or small their channel is. Users can create brand new applets (which are mini programs that execute on specific triggers) or pick from existing templates for common use cases. The applet editor allows for unparalleled customisation. So far we've integrated Twitch, Minecraft and Discord, with many more services planned in the coming weeks. A few examples of applets that streamers can create include:
- An applet that, once enabled, creates a number of custom channel point rewards on the streamer's Twitch channel. These rewards, when redeemed by a viewer, will execute the applet and run whatever has been configured. This could include spawning mobs on all/ specific players on a Minecraft server, giving/ taking items from the player, or simply writing a chat message in either Twitch, Minecraft or Discord. When the streamer disables the applet after their stream, the applet can be programmed to remove its custom rewards from their Twitch channel.
- An applet that, when the streamer's channel gets raided on Twitch, spawns a circle of mobs around the streamer on their Minecraft server. The number of viewers in the raid will equal the number of mobs spawned.
- An applet that, when ran on the streamer's Twitch channel, creates a list of custom commands trigger message responses. Messages could contain links to social media, information about the channel, or could run actions in Minecraft as mentioned above.
This list barely scratches the surface of possible combinations that streamer's can create in our system, by using custom applets. If you would like a video on how to create a custom channel point reward applet, click here
How we built it
We created the front-end website and dashboard in the React framework in Typescript. Initially, we started building the back-end server in Firebase but this proved to be difficult to scale with. Therefore, we decided to rebuild into a full API built with .NET Core in C# and hosted on Microsoft Azure. We built Twitch and Discord bots to handle IRC functionality in Node.js, as well as a Minecraft integration built as a Spigot plugin in Java. All of these services communicate in real-time using Microsoft SignalR.
Challenges we ran into and what we learnt
We launched the Alpha version on the 14th March and quickly realised we were handling applet executions too slowly. We knew we would struggle to scale later on. In one stream, with 10 viewers redeeming custom channel point rewards, our request queue hit 500 pending redemptions with an average response time of 10 seconds. Even with us running on the fastest servers that Azure would provide us, we still couldn't clear the queue. In order to diagnose the problem, we built an internal stress test system to detect the performance issues. Following this, we shut down the servers to refactor our processing pipeline and relaunched the Alpha days later. Overall, we went from struggling to handle 10 requests per second, to handling well over 1000 requests per second even on the most basic of Azure servers. A test stream ran on the 26th March showed an improved response time of 100 milliseconds and no queue, even with viewers spamming the custom channel point rewards. It was a huge relief to know that our platform can handle thousands of users running applets simultaneously.
Accomplishments that we're proud of
We are very proud of our applet editor within our platform. We spent a lot of time designing and building this system to be both intuitive, and also provide as much customisation as possible. We wanted to be able to cater to users who want quick and easy setups for common use cases, while also allowing others to fully customise applets to meet their specific needs. After going through multiple designs, we came up with a drag-and-drop editor that allows users to connect nodes together as well as integrate logical conditions into their applets. It's as easy as dragging in a Trigger such as Twitch "OnFollow" and connecting it to an Action such as Minecraft "SpawnMobs". This was important to us because we wanted users of all abilities to feel comfortable creating their own applets.
What's next for Stream Hydra
We have big plans for our platform to be able to integrate with as many services that are useful to streamers as possible. We are currently working on adding more features to the Minecraft and Discord modules, as well as adding new modules such as integrating with Elgato Stream Deck (where users could trigger applets by pressing a button) or with If-This-Then-That (where users can connect their applets to the huge array of services they offer). We are very excited for the future of our platform and we hope our users enjoy using it as much as we enjoyed building it.




Log in or sign up for Devpost to join the conversation.