SoundCloud: Your steam is not streaming
#### A flaw in SoundClound’s stream design
SoundCloud.comI love music. I’d say music is my religion. Before people invented religion to gather socially, music and dance was the binding force. When you listen to music a lot, after sometime you get bored of the songs you are listening to. You start looking for new sources. Its an addiction and most music addicts have to deal with.
I use SoundCloud for my fix. Why SoundCloud? Because its slick, its free and its awesome! New music everyday without even having to do the search. Just subscribe to people who share good music and you get a brand new playlist everyday. It has been working really well for me. And most days, it keeps playing in the background while I do my coding. But some days are not easy.
The problem are the people on SoundCloud who repost/share everything. Yep, everything! I don’t think they bother even listening to them before hitting the repost button. They are the kind of people you find on almost any social network. The social spammers! I keep falling in their trap because sometimes they post something which is interesting and I forget to verify if the person posting it is a social spammer. I hit the unfollow button as soon as they post something which is not my kind of music, but unfortunately that doesn’t solve my problem.
And thats because of SoundCloud’s chosen architecture of generating the feed. There are basically two ways in which newsfeeds/stream can be generated.
- A pull based — where stories are put in buckets(the story generators) and users pull the stories off them when the newsfeed has to be published.
- A push based — where stories are pushed into a user’s(the end consumer’s) feed as soon as the event occurs. Data redundancy happens here. This question on Quora explains them in detail. It even has an answer from the person who invented newsfeed. ;)
SoundCloud uses the second method. The advantage of the second system is that you can pre-generate the newsfeed for a user in the background and not require a lot of runtime performance when a user requests his/her newsfeed. Its really good for handling load. But the problem with this approach is that if stories change its a pain to update/remove them. SoundCloud currently has this problem. Once I unfollow someone, SoundCloud doesn’t remove their crap from my feed. ☹ This makes my music experience on SoundCloud bad.
SoundCloud if you are hearing please fix the logic of your feed generation. No one likes unwanted/stale content.
Content > Code