What's the difference between Pipedream and Autocode?

This topic was automatically generated from Slack. You can find the original thread here.

Matt Roberts : What’s the difference between pipedream and autocode?

Dylan Sather (Pipedream) : Pipedream and Autocode both help users run event-triggered code in a serverless environment. We both have a concept of triggers and actions, and we both started with Node as our primary programming language. But beyond that there are some core differences in our approach. I’ll use a specific workflow to demonstrate how Pipedream works. I am not an Autocode expert, but some others in this channel like @U0179TE2FLP, who have used both, may be able to offer a more detailed comparison.

In Pipedream, you build workflows. Workflows are just a linear sequence of steps that describe your program. The first step of this workflow - the trigger - runs on completed Zoom recordings. When you copy this workflow into your own account, this will create an event source, which you’ll find at https://pipedream.com/sources . Event sources run Node code to listen for events from an app / API, and emits them to any listening workflows. When you copy this workflow, we’ll create the completed recordings source and link it to this workflow as the trigger step, but event sources are completely decoupled from workflows. This means you can use this event source to trigger any number of workflows. You can also listen to emitted events completely off the platform, using our REST API or SSE interface for sources.

You can use sources as they’re written, but if you visit https://pipedream.com/sources , select your source, and click on the Configuration tab, you’ll see the source’s code, which you can modify in any way you’d like. All event sources are open source, and you can even author your own (check out this and this doc) and publish them to the platform for private use, or submit a PR to our repo to open it up for anyone to use.

Back to the workflow. After the trigger step, you’ll notice a sequence of other steps describing the workflow logic. Where you’d write a single function in Autocode, similar to AWS Lambda, etc., Pipedream separates workflow logic into steps. You can write your own steps - they’re just Node.js functions - and we provide thousands of pre-built steps, which we call actions. This is somewhat equivalent to actions provided through the Autocode lib package. These steps accept params as input, and return step exports as output. I’ve made many of the params in the workflow above public so you can see how that works. In the first step - construct_filename_and_download_url - this refers to the current step. By running this.filename = ..., I’m exporting the filename for use in future steps. In the next step - download_recording_to_tmp - you’ll see how I reference steps.construct_filename_and_download_url.filename as the value of the Filename param, etc.

For this workflow, I wrote the first two steps manually, but used the pre-built Google Drive Upload File to Folder and Email Me actions, just by clicking the + button and searching by keyword for what I wanted.

Let me know if this all makes sense and if you have any other questions or feedback.

calpa : I tried to use autocode before, I think it would be better for those complicated project. But I use deta.sh as I can use my IDE and upload it to deta server and github.

Pipedream is much more like workflow machine. If you had a rss source, pipedream lets you to integrate without pain.

Nacho Caballero : another difference between Autocode and Pipedream is that PD lets you see the outcome and console logs for every step and every past invocation of your workflow. This is hugely useful for debugging (Autocode only saved the last 1000 lines of stdout). I also found Autocode’s sandbox/release approach much more cumbersome than PD’s. Once I switched, I never looked back. :sweat_smile: Let me know if you have any specific questions.

Nacho Caballero : I didn’t know about deta.sh. It looks cool, but I can’t really figure out if I have a use case for it. What do you use it for?

calpa : My telegram bot, as it grows much more complicated.