Three Birds or How SourceFuse Solved a Partner Startup’s Tech Challenges
It’s been 3 and a half years since we started working with Buzztala. At the time we built a platform that helped aggregate user generated product reviews on e-commerce sites. A couple of pivots later Buzztala is now a programmatic video production platform that allows advertisers to drive targeted audiences in organic and paid search and via remarketing display in social channels. Customers discover videos while in their favorite mobile apps (Facebook, Twitter) or conducting searches in Google, YouTube, Bing or Yahoo where videos are listed in top paid and organic search rankings. Partner Success is one of SourceFuse’s core values and this post is a showcase of how we rose to the challenge that our customer’s business was facing and what we did to overcome them.
Third Party Dependency: The platform had now started to scale rapidly, we have ebay and Walmart as happy customers. However, we were dependent on encoding.com to stitch our videos together i.e. concatenate the buzztala reviewes videos, audio, product images and feature points. We couldn’t build a scalable business for our client and partner depending on 3rd party API — the risks were obvious, what if the API went down or worse they go out of business.
Feature Scalability: Customers now started to realize the power of these short video product reviews and now wanted different video types. Some customers wanted scrolling text feature points, some wanted audio only reviews with no presenter showing, some wanted full screen product images and some wanted no images at all. Creating an interface that was this flexible with a 3rt party API just did not seem feasible.
Volume Scalability: We were now processing 100s of videos a day and as we scaled our 3rd party costs went up as well. That’s the SaaS business model isn’t it — cheap when you start up and when you start to scale it starts to hurt. We needed to bring the video encoding and concatenation features in house.
We knew the holy grail of video encoding and other features was something called FFMPEG, a command line library that lets you do some nifty stuff with audio and video. OK, so we needed to setup an FFMPEG box, but how would it scale, how would it stitch the potential 1000s of videos a day that our client. Did this mean we would need to get into the seemingly “seamless” pitfalls of auto-scaling servers and processing queues? Ugh.. There had to be a better way.
We had heard a lot of talk about Amazon’s foray into something called Serverless Backends using AWS Lambda. Lambda allows you to create small “functions” that you can call in response to events in your code. The languages supported for these functions were Python, Java and NodeJS. Lucky for us the FFMPEG library was available as a NODEJS wrapped package. What did that mean for us? Well, we could now move away from encoding.com and build our own encoding service, add our own video and audio features WITHOUT having to worry about server costs, availability, scaling, queues, and all the other stuff that we would have otherwise needed.
How much would it cost?
We did a quick test and created 270 odd product videos, we had consumed around 60,000 GB — seconds worth of Lambda compute. Guess how much Amazon charged for this — nothing — nadda — zilch. The first 400,000 GB- seconds of compute were free. And after that it cost $0.00001667 per GB-Second of compute which basically meant we could process 2000 videos for free and another 2000 for about $7. This was almost too good to be true, no devOps overhead and super cheap scalable compute power. No wonder the likes of Netflix have started to adopt Lambda as well.
This was great — we now successfully migrated away from our 3rd party API and had virtually infinite scale. Now, all we needed was feature scalability. This was pretty straightforward, all we needed to do was to create as many small modular Lambda functions as we need for things like scrolling text, moving images, video filter effects, the FFMPEG library was our playground. But, how would the good people at Buzztala put this stuff together without our help? We needed to provide them with a user interface that was easy and familiar, something like a non-linear video editor maybe? We googled around for something and found something very cool — there was a Mozilla project called PopcornJS that was discontinued but it had a nifty JS UI called Popcorn maker that we could cannibalize to get our job done. The result, a more than usable drag and drop “non-linear video editing” kind of UI that can be used to create “templates” of video for stores. These templates are completely customizable and take care of most of the customer requests that Buzztala now gets from it’s customers.
From this -
To this — https://vimeo.com/155102832
The above post is the first in a series of similar posts that we will be publishing in the coming months citing examples which exemplify SourceFuse’s core values of Nurturing their clients and ensuring partner success.