Today it has over 25 million users, a global reach of 120 million music fans and over 230 thousand connected artists. Bandsintown is by far the world’s most popular concert discovery app. Apps are available for both Android and iOS.
Through the use of activity and notification feeds powered by Stream, Bandsintown allows you to easily follow your friends, artists, events, and venues.
In 2015, Bandsintown decided to add a feed to their application. The goal was to provide artists with a new way to reach their fan base. Also, they wanted to bring a social aspect to Bandsintown by connecting users with their friends.
Even though their team has substantial experience with Cassandra they decided not to build an in-house solution, but use a proven service such as Stream. We asked Xavier Cany, the CTO of Bandsintown, why he chose Stream:
We were looking for a write-based fan-out type of social graph because the messaging aspect (user-to-users) (artist-to-users) was an important part of our specifications. Stream provides easy to use integrations for a lot of different frameworks including ruby.
The feeds for Bandsintown’s 25 million strong userbase are powered by Stream. They utilize the flat, aggregated, and notification feed types – all of which are easy to configure from our simple and intuitive dashboard (see above).
When a new concert is announced, Bandsintown wants to share the news to all interested users. They use the add_to_many API endpoint to quickly write an activity to millions of interested users.
Concert announcements cause huge fluctuations in traffic. Stream’s API automatically scales up and down to meet this changing workload.
We asked Xavier about his experience integrating Stream:
Once we spec’d-out all the different follow connections and verbs that we would be using: the integration was painless.
Building a feed without Stream would have taken Bandsintown months, if not longer. Using Stream, they were able to focus on their product and build a scalable solution in days.
Feeds are extremely fast and on average load in 20ms. Integrating Stream was significantly more affordable than building, maintaining and hosting an in-house solution. Advanced features such as aggregation help Bandsintown keep the feed relevant even for power users. Stream’s extensive set of features allows Bandsintown to easily adapt to changing product requirements with simple code modifications.
The team at Bandsintown is looking to add several new features to improve the feed experience, like ranking and personalization.
I would suggest to really take the time to define all the different aspect of your final product from the start. We choose to delay the launch of aggregated feeds thinking it would be faster to stage it, but we came to regret it.