The Architecture Of Flow: Canonical Features Of Streaming Applications
Last week I spent a few days in New York, meeting with a diverse group of startups, and one of the themes that kept reappearing was the nature of what I have been calling flow applications for the last few years. One sharp colleague asked me to define a flow app in a simple way.
I tried, and I think I came up with the key features of stream or flow applications. I also came up with a few applications that demonstrate those features well.
The Stream, Not The Inbox
Streaming applications are involved in communication, and are displacing the email models that typified Web 1.0. We all known how inboxes (a la email) work: people write an email, address it to one or more people (or groups, in some cases), and then send it off. The email infrastructure delivers the mail to those addressed, who receive it in their respective inboxes:
- The inbox model is inherently private: the email is only delivered to a select group, and others cannot see it, even if that was desired.
- The reach of the email is completely determined by the email’s author, and it is made on a piece by piece basis.
- The ownership of the email shifts to the recipients when it is delivered: they have to delete, or file the email, which is no longer under the control of the author.
Flow apps work very differently:
- Streaming apps are inherently open: the premise is that users create and share information in the open. This is about supporting open discourse.
- The recipients opt into ‘subscribing’ to certain people’s streams, so the decision about access to information is made by recipients, and this decision is general, not made on a post by post basis. I call this the ‘open following’ feature, meaning anyone can choose who to follow.
- The handling of the streamed posts does not transition to the recipients: it is still under the control of the author. Posts can be deleted, for example, or edited. And posts do not have to be ‘handled’ by recipients: filed or archived. They simply slide from the top to the bottom of the stream, and march into oblivion, without the recipients having to manage them at all. While an archive exists, it is managed automatically by the streaming application. Collectively, these features add up to an anti-inbox model
Two representative flow applications: Twitter and Staction
Twitter is an amazingly small application. It’s almost all stream and nothing else, although the notion of direct messages runs counter to the basic model.
Staction is another very tight streaming application (see Staction: Another Run At Workstreaming and Staction: Starting To Knock Down My Objections), but one that is intended for the business context. Like Twitter, it has a stream of posts that makes up the core of its functionality, and posts can be directed to the attention of particular users (like Twitter @replies). However, Staction posts are not limited to 140 characters and can be linked with a particular project, limiting visibility to those users who have been invited to the project.

Staction, originally uploaded by
Stowe Boyd.
This one tweak — along with the basic narrowing of membership to those who have been granted login access to the company’s Staction instance — makes Staction a very productive work streaming application. Note: the folks behind Staction, Paste Interactive, recently released a new version that supports newlines in posts, providing the most minimal of formatting of posts, but it led to one of my few complaints being satisfied. Also note that Staction supports time tracking and to-dos, but that’s outside the scope of this posts.
These two apps share a common model of use, based on the basic streaming affordances. Posts are pushed to all users (except the Staction project visibility filtering). No filing has to be done as in inbox apps. Posts can be brought to the attention of specific members of the community by indicating their names with ‘@’ but these are still visible to others.
Follower/Following Model Of Social Relationships
Most of the most interesting flow apps are extremely social, and use the follower/following relationship model. The F/F model is asymmetric — I can follow people that don’t follow me, and vice versa — and generally, I can follow anyone I want: I don’t need their permission to see their public information.
The consequences of this open model — the ‘cocktail party’ model, where everyone attending the party can wander around and join into any conversation — are extremely broad. It stands 180 degrees apart from the inherently closed model of email.
This is also a model that (sort of) underlies RSS, which is why I often say that flow apps are the unholy offspring of RSS and instant messaging. The chat and buddylist metaphors from instant messaging, and the presumed public access of RSS feeds.
Snackr: An RSS Streaming App
One of the applications that has profoundly changed the way I use and experience the web is Snackr (see Snackr: An RSS News Ticker).
Snackr is not a true social application — it does not support direct communication between users, for example — but it employs a streaming metaphor instead of an inbox for RSS feeds.

Snackr, originally uploaded by
Stowe Boyd.
Like other streaming apps, I don’t have to file or delete RSS items: they simply erode after a defined period of time (in my case, 3 days or after I read them). In the image above, I have clicked on an interesting post which is opened in an associated window. I have the option to open the original post in a browser window, and to ‘star’ the item, which places it in a list of items that don’t erode, like a pushpin or a Twitter favorite.
Snackr — which syncs with my Google Reader account — has changed my RSS usage completely. Items stream by, I glance in an ambient way from time to time, clicking if something looks hot, but I no longer have to empty my inbox, or declare RSS bankruptcy and mark everything read.
I would like to see Snackr more integrated with other streaming applications: for example, a means to push an item’s URL to my Twitter stream is an obvious need, and the more complex but equally interesting option of having Snackr watch my Twitter stream for URLs, and to treat them as equivalent to RSS items.
[Update: immediately after writing that paragraph I discovered that v0.39beta of Snackr supports cross posting snacks into tweets with a short URL option. But not the second, more complex feature of sniffing my Twitter stream for incoming URLs.]
Conclusions
I believe that the overwhelming majority of future social applications that will have big impacts will share the characteristics I outlined: open discourse, open following, and the anti-inbox.