For those of you who don’t know, Winds (the popular open-source RSS and Podcast application) is powered by Stream – a SaaS offering that is specifically dedicated to powering news and activity feeds. If you’d like to get jumpstart your knowledge of feeds, we have an awesome 5-minute tutorial that outlines how to use Stream. If you’re already familiar with Stream and/or the wonders of feed technology, read on!
Stream allows Winds to have capabilities like:
- The ability to follow RSS feeds or podcasts.
- Real-time notifications about feed changes, enabling Winds to immediately surface new content, whenever it is available.
- Recommendations for new RSS feeds and podcasts to follow.
Building activity feeds that are both scalable and relevant is difficult. Traditionally, companies have relied on Cassandra or Redis to build their feeds. Building feeds in-house is time-consuming, expensive and hard to maintain. Stream makes it extremely easy and cost effective to build a scalable, relevant feed. Feeds typically load in 11ms and with 300+ million end users, Stream has been battle-tested in and withstood some of the roughest conditions. In this short post, we’ll dive into how we’re using Stream to power follow relationships, real-time functionality, and content discovery in Winds, as well as how it allows our team to confidently scale the application seamlessly and offer up fresh, relevant content to our users in the blink of an eye. Enjoy! 👏
What’s a Feed? 🤔
A “feed” describes the structure that you see on many popular social media apps today; feeds allow users to scroll through and interact with content as they view it. Technically speaking, feeds are a part of the Activity Stream spec; there is an official spec for Activity Streams (also known as “Activity Feeds”). The official documentation can be found here. At a high level, the spec outlines how to properly send JSON in a representation that is suitable for building an activity feed. At Stream, we follow the spec closely and provide the required parameters that should be sent, but also offer the ability to send custom data. Stream provides the following “Feed Types”:
- Aggregated – This type of feed is the advanced feed, allowing for activities to be grouped and displayed using an “Aggregation Format”.
- Notification – Think of this feed type as an “aggregated feed” with extended functionality. It can be modified so that items within the feed can be marked as seen or read (think Facebook’s notification feed).