Blog Post

Couchbase NoSQL @ musiXmatch : Lyrics for everyone

Don Pinto of Couchbase Published

musiXmatch is the second most used app on spotify and features the world’s largest lyrics catalog. So what is LARGE? It means 20 million users accessing more that 7 million lyrics in 38 languages.


musiXmatch is revolutionizing the experience for music lovers, giving them an opportunity to get the lyrics for their favorite song to sing along anywhere. Read this blog to learn how Couchbase Server was used to power this highly scalable online music service ...


Have you ever searched google for the lyrics of your favorite song? “Lyrics” is one of the top searched Google term, that means that billions of people use Google to search the term “lyrics” in order to get a song’s lyrics. Now, there is a better way.

In this blog, I wanted to share my conversation with Francesco Delfino (co-founder of musiXmatch), as he explains why the musiXmatch team is using Couchbase Server, what they’re doing with Couchbase, and why he’s confident about the capabilities of Couchbase.

 

So Francesco, Can you tell us about musiXmatch and your role there?

musiXmatch manages and sub-licences the largest catalogue of worldwide licensed lyrics that can be accessed through a B2B API, a mobile and desktop player app. With more than 20 millions download, musiXmatch player is the most used “music player with lyrics” on Android, iOS and Windows Phone, in several countries.

 

I am a technical co-founder of musiXmatch and my role is to choose and manage the deployment of new server technologies in the backend infrastructure.

 

Francesco, can you share more details about how your application uses Couchbase?

At musiXmatch, we use Couchbase for storing user session and semi-transient device data. We run Couchbase on the Amazon AWS platform with a total cluster size of about 4TB and this backend system is growing.

 

When we designed the musiXmatch app, we started looking for a distributed database architecture first experimented with memcached and dynamodb. Our app also needed search, so we had to manage another system for running elasticsearch on top of S3.

 

Thanks to Couchbase, we have both these capabilities within a single system that is easy to manage. Couchbase provides us with native memcached support, search integration with elasticSearch and cross datacenter replication that allows us grow our cluster across different geographies with minimum developer effort. Using Couchbase Server simplified our backend architecture to a great extend.

 

What are the typical access patterns of your app ?

We use Couchbase primarily for storing sessions and see heavy “key­value” access pattern. In addition to key­value access, we also have a specialized Couchbase cluster with a number of views that allow us some simple real-­time analytics on user data such as partitioning the user based on their characteristics such as paying vs. not paying.

 

What made you pick Couchbase over other NoSQL databases out there?

When we tried Couchbase for the first time we found it very easy to use. The top 3 things that we liked about Couchbase Server :

  1. Cross datacenter replication was easy to setup and use

  2. Compatibility with the memcached protocol made early prototyping very easy without any application rewrites.

  3. The cluster was easy to scale with a single click of a button.
     

What advice do you have for new Couchbase users?
Download Couchbase Server and try it out!

Any next steps? Are there new features or new apps you are planning to build with Couchbase Server ?

In the future, we plan to grow the size of data stored in Couchbase significantly.. around 10x. This means that we will store more user data in Couchbase including playlists, etc.  

 

Thank you Francesco

My pleasure. Thank you!


New to Couchbase? Register for our upcoming webinar that introduces Couchbase Server 2.5.