The world’s largest concert discovery platform

Bandsintown simplifies concert discovery by allowing you to track your favorite artists, receive alerts when they are touring near you, keep track of which shows you have RSVP’d to, and share concert details with your friends. Bandsintown was founded in 2004 by Fabrice Sergent, Julien Mitelberg, Todd Cronin and Phil Sergi.

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.

The Challenge

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.
Xavier Cany
CTO BANDSINTOWN

The Solution

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.

Integrate with Stream

Stream has official clients for Ruby, Java, Python, PHP, Go and Java. We also support Django, Rails, Laravel, and Node integrations here. Community clients exist for Scala, .Net and Go.

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.
Xavier Cany
CTO BANDSINTOWN

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.

The Results

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.
Xavier Cany
CTO BANDSINTOWN

Talk with us

Schedule a call with our data science team to learn how personalization can work for your app