If a picture is worth a thousand words, then a video is worth a million. Video is the richest communication medium, as it allows us to integrate different forms of expression—visuals, motion, audio, and special effects. Video allows our conversation with friends, family, and others to come to life. Yet for most of us, it requires significant effort and creativity to create a meaningful video. As an everyday communication tool, video can be daunting.
In 2013, the founders of Dubsmash recognized how platforms like Instagram facilitated communication by lowering the barriers to creativity. They wanted to bring the same joy and expressiveness to communication through video. Their mission was to make it easy for people to create video messages and connect with each other in a fun way within seconds.
The Dubsmash platform allows users to record videos by either selecting a pre-recorded sound, or by saying it with their own voice. Afterwards, they can share them directly with friends in a group or in one-to-one conversations.
Unleashing Creativity on Heroku
From the beginning, the Dubsmash founders chose to build their video communication platform on Heroku. Dubsmash CTO, Daniel Taschik, was already familiar with the Heroku platform from past projects at university. Having a background in software and system engineering, his focus was to build Dubsmash’s product rather than to set up the infrastructure.
We chose Heroku primarily because of the platform’s ease of use and the GitHub integration. It’s just so fast to deploy by using a simple Git push. Daniel Taschik, Co-Founder & CTO, Dubsmash
Dubsmash’s backend was originally written in Python, which was the development team’s favorite language for years. Ever since they migrated two services to Go, they have seen a significant improvement in performance. Python and Django allow them to prototype and iterate faster due to the longevity of the language, its libraries, and the strong developer community. Yet, when it comes to building super fast, resource-constrained core system components, the team prefers Go. They plan to migrate more and more services to Go in the future.
We migrated two of our services from Python to Go and were impressed by the results. We’re really happy with the performance of our Go apps on Heroku. Daniel Taschik, Co-Founder & CTO, Dubsmash
The two Dubsmash services in Go are for authentication and favorites. For favorites, the Go microservice channels user data from the client to a DynamoDB database. They can easily handle up to 20k requests per minute using two 1x web dynos. There haven't been any issues with throughput or latency. Dubsmash occasionally experiences some Go-related issues for minor things such as garbage collection, but the team is working together with Heroku’s Go support team to resolve them.
The Go experts at Heroku have been really great. They’ve helped us troubleshoot some minor Go-related issues and optimize our use of Go for our Heroku apps. Daniel Taschik, Co-Founder & CTO, Dubsmash
Dubsmash launched with a small Django instance that ran everything. During the first year, they added new features that allowed their product to rapidly gain traction in the market. As a result, the team had to scale up quickly without any time to re-architect the platform, leaving them with a monolith that decreased in performance as both traffic and data increased. So they decided to break out components into microservices starting with search and then favorites. The team intends to continue breaking out services to scale them independently and to maintain a continuous deployment process.
As a video sharing platform, Dubsmash has huge data storage requirements – their favorites index alone is more than 130GB. For such volume, they prefer to use a NoSQL service like DynamoDB and use Heroku Postgres for their relational database needs. Dubsmash integrates several Heroku Add-ons, including New Relic APM and Librato for performance monitoring, MemCachier for caching, SSL encryption, and Papertrail for logging. This allows them to focus on development.
Integrating Heroku Add-ons into our app was really convenient for us. Add-ons allow us to focus on what we’re really good at, which is developing our core product experience. Daniel Taschik, Co-Founder & CTO, Dubsmash
As their business rapidly scales, one reason they choose to stay with Heroku and not to switch to other solutions is the ease of deployment on the Heroku platform and features like Heroku Pipelines and GitHub integration.
We are very excited about Heroku’s roadmap and are always first in line for their betas. Our team loves playing with new platform features in staging before they hit prime time. We are usually counting down the days to GA, so we can push the new features to our production apps. Daniel Taschik, Co-Founder & CTO, Dubsmash
Skyrocket Growth of Video Conversations
With more than 100 million downloads, Dubsmash is one of the fastest-growing mobile video apps worldwide. The company ran several successful partnerships, inter alia, with artists like Rihanna, Flo Rida, and Jason Derulo, as well as movie studios like Walt Disney Studios, Warner Brothers, and Paramount Pictures. Dubsmash was released in November 2014 and quickly reached #1 in both the App Store and Play Store in over 70 countries.
With Dubsmash, "saying it with video" has never been easier and more fun.