Today I had a chance to spend some time experimenting with Tarpipe and I have to say that I am intrigued by the concept and impressed by the implementation. Modeled after (but more general than) Yahoo Pipes, Tarpipe is a very usable tool for building visual workflows. The workflows can invoke web services on a number of social networking, messaging, and photo storage sites, as shown in the picture on the right). Each of these sites is represented by a Tarpipe connector. There’s a configuration page which accepts account names and passwords for each site:
The Tarpipe builder is used to create workflows. A workflow can be initiated by an email address associated with the workflow or by a REST-style API call to an endpoint at Tarpipe.com. The initiators are currently called Receptors but I’d prefer to see them called Triggers.
Each workflow can contain any number of connectors. A pair of special connectors represent the starting point (the incoming email or the REST call). Connectors contain inputs and outputs which can be wired to appropriate points on other connectors. A single output can be connected to multiple inputs.
Once started, execution of the workflow is driven by the availability of data at the input points to each connector. As soon as all of the connected inputs have data, the connector “fires” and does its thing.
Here’s a workflow that I built:
This workflow is activated by an email to an address at tarpipe.net . It expects the email to have an image attached, along with some tags in the message body and a picture title in the message subject. The image is posted to my Flickr account. A Tweet containing the URL of the picture is sent to my Twitter account, and a confirming email is sent back to me. This took about 5 minutes to build. With the exception of the confirming email, it all works just fine.
Here’s the email I sent to activate my workflow (yeah, I tagged it with the wrong year):
My Family Christmas Picture showed up up Flickr and the Tweet was sent as expected:
The site tracks the execution of each instance of each workflow and makes it available via a status tab:
The product is at a very early stage and there’s room for all sorts of enhancements. I would like to see some more receptors, including a timer of some sort so that I could run a workflow every so often or at a particular time each day. Of course it would be cool to have it make calls to Amazon S3 and SimpleDB and to drive the workflow from SQS.
If you’d like to give this a try, start with this Tarpipe Howto.
Cool applications like this are going to make 2009 really exciting!