Sketchfab Utilizes Stream’s Feed Technology to Increase Performance and Reliability
“From posting updates to commenting and more, Stream provided us with the most flexible and scalable solution for displaying all our user's activities. The Stream team made implementing our news feed solution a collaborative experience and ultimately the right decision for us.”
- Paul Chambers, Artist Evangelist at Sketchfab.
Sketchfab’s community consists of artists, designers, architects, hobbyists, engineers, brands, museums, game studios, schools and more. Some of the most talented 3D artists showcase their work on Sketchfab’s platform.
Sketchfab's rapid growth triggered them to research solutions for their feeds. Since conception, they had relied on custom-built feeds that caused several issues. They had no other option but to maintain their own infrastructure in order to support their initial solution (ie. PostgreSQL database and Redis cache). The former implementation also relied on storing user activity in a PostgreSQL table which, as activity grew, it took more and more time to scan and retrieve activities relevant to a unique user. They knew their in-house solution wouldn't scale indefinitely and adding and maintaining more infrastructure in order to fix it was not an option they wanted to explore.
Sketchfab heard about Stream since they are a fellow TechStars graduate. They tried out the interactive API tutorial and were impressed with how easy Stream's API is to use. Before making the final decision to work with Stream, they did their research. The main alternative they considered was building an in-house solution on top of Stream’s open source Stream-Framework. Stream’s built-in support for aggregation, notification feeds and ranking was a major reason for why they chose the hosted solution. Another benefit is the solid performance and reliability offered by the API. Stream’s hosted platform is based on Go and a highly optimized feed storage infrastructure. That level of performance and reliability is hard to achieve when building an in-house solution. The final reason they decided to use Stream's API is pricing. The team at Sketchfab realized that hosting and maintaining their own Cassandra cluster, worker instances, task broker, real time infrastructure and API workers would simply not be cost-effective.
The end result of this collaboration is the new feed on Sketchfab:
In addition to the news feed, their notification feed is also powered by Stream.
Sketchfab uses Stream’s region in EU-west. This is right next to their own data center, so the performance is very high. Here’s a graph of their read performance before and after Stream’s switch to Go:
Primary reasons for choosing Stream:
- Aggregation, ranking and notifications supported out of the box
- TechStars graduates
- Low maintenance
- Solid performance and reliability
- Cost effective compared to in-house
- Dashboard reporting