Hello everyone, I’m preparing to build a web application that will notify users about streams and give them insights and analytics about their watching history. I’m considering using the EventSub subscriptions as the most optimal way to get near real-time notifications. But, the problem is that the EventSub is limited to only 10,000 active subscriptions, plus, the app is more likely to be authorized by normal users, not the streamers themselves. I remember one time I was surfing the docs and saw a section mentioning that this limit will be increased if your app gets authorized by more and more Twitch users over time. Now, I can’t find this thing discussed anywhere in the docs. Is this still the case or do things have changed over time? It’s so demotivating to know that your app can’t be scaled when you hit the current limit.
No, your EventSub limit will not be increased over time.
The cost system allows for apps to scale when they are using topics related to the users authenticating with the app, as they will cost 0 so you could scale to millions of users if you just wanted to get the streams of those who connect with your app while still having the default limit. If on the other hand you’re trying to get data from topics on users that haven’t connected to your app then it’s intended to have a cost, and limit the app.
If your goal is to track streams of users that aren’t connected to your app, then EventSub isn’t the correct product for your use case as it’s designed to limit the scale in that use case due to the cost limit. For that sort of use case you should be polling Get Streams, where you can supply up to 100 user id’s per request, so with the default rate limit you could check 80,000 streams per minute, or if you did a check every 5 minutes that’d be 400,000 streams you could check when they go live.
Thanks for your answer,
So, unfortunately, there is no increase in the EventSub limit in my use case. It’s extremely demotivating to hear this because polling the API is not practical at all. I would be making 4800 requests per hour every single day even if my app has only 1 or 2 users using it. This is very costly as you know and no one will take the risk of doing this for a project that, in the end, has the same potential to fail as to success.
I’m not sure how you’re making requests that it is in any way ‘costly’, as 4800 requests per hour is a very small amount, and no where near the default API Rate Limit so it would provide you a great amount of headroom to grow. If you use the User tokens of the users who connect to your app then each would have their own rate limit of 800 per minute, so you could expand into each user tracking the stream status of tens of thousands of channels without scalability issues if you choose to do it that way.
The alternative if you wish to only use EventSub, would be to have the users you’re trying to track streams of connect to your app, but if they don’t wish to connect to your app then it’ll count against your EventSub limit to get that data, simple as that.
Well, I’m still planning for the project and checking the possible ways to create the needed functionalities using the Twitch APIs. As you know, using EventSub would be the most optimal and straightforward solution for tracking streamers’ statuses. But, as this method is not scalable, you mentioned the solution of sending a bunch of API requests all the time to keep the streamers’ data updated. How is this not costly in terms of my server resources?
I don’t know what type of server you’re utilizing, or how you’re making the HTTP requests, but usually that number of requests is an insignificant amount in the grand scheme of things, even when running on low power devices such as Raspberry Pi. If you’re running serverless, many providers such as AWS have free tiers, like Lambda which the last time I checked offers the first 1 million executions a month free, and the number of requests is far below any of Lambda’s concurrency limits so I would assume other serverless solutions to similarly be able to handle it.
Polling the API is also how the vast majority of services that do the sort of stream online alerts you’re looking to make, or Twitch-wide analytics of every channel on Twitch, have been doing things since before EventSub was even a thing and polling was the only option.
Thank you for your help, I will be looking into this even more.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.