We’re interested in the reason that there is an EventSub event for a channel follow, but not an unfollow. Both exist for channel subscriptions, would it be infeasible to create the same for follows?
Our app has tracking around user followers. We can obtain all of the streamer’s current followers through the API’s followers endpoint. We can easily track and add singular new followers based on the EventSub Followed event as well.
But to maintain an actual list of the streamer’s followers without an unfollow event is a pain. We basically need to retrieve all of a users followers, and then discern which are existing, new, or which ones unfollowed. This isn’t a huge deal for smaller streamers with <1K followers, but for larger streamers with something like 5-8K followers, this becomes extremely inefficient. There is no good way to maintain their follower list without pulling literally every follower they have. At 100 followers per page, that’s 80 HTTP calls.
I’ve seen older forum posts about this issue, but not much discussion. Is there a specific reason this side of the follow lifecycle was never implemented as an event?
From what I recall from when this has previously come up, it was an intentional design decision by Twitch to not include an unfollow event, for reasons such as the potential for abuse (eg ‘unfollow alerts’ that could try to shame users for unfollowing, or calling out users in some way who unfollow).
As for paging through Get Channel Followers, keep in mind that unfollows are infrequent so it’s not something you’ll have to constantly do as an occasional page through the full list along with the EventSub topic for new followers to keep the list relatively fresh is sufficient for most services, even with channels in the hundreds of thousands/millions of followers.
So it likely just comes down to the potential for abuse, dev time, and continued maintenance, outweighing the limited benefit of an unfollows event when there are alternative solutions such as using the API.
My immediate thought when I first found this was something similar to shaming, but there is a similar flow for subs which could be misused in the same way.
I agree that unfollows aren’t that common, so it makes sense that checking constantly isn’t totally necessary. That being said, our application does require accuracy in tracking followers, and the current approach results in a poor experience from both the developer and Twitch side of things.
UnSubs are needed it for “business logic”, so for like a subscriber only minecraft server or access to any “subscriber” benefit. (access to emotes on discord/etc), this often needs to be real time.
It’s not common for follower benfits to be a thing. (sure follower only giveaways, but it’s trival to do a 1/1 check if a user won the giveawya and reroll automatically as needed)