All sorts of updates related to Pipestack.
tl;dr A new kind of pipeline builder that combines drag-and-drop UI with language-agnostic Wasm components. Pipestack is live!
Every business ends up building some kind of glue code, workflows, event triggers, and/or data sync scripts. Eventually, hosted tools like Zapier or n8n are being considered, but these tools can be either too limiting or too complex.
A web interface, a few clicks, and you have a pipeline! Then reality hits and things either become hard to manage or UI-only tools fall short in what you can do. n8n comes closest to bridging the gap, with support for custom code, but only in JavaScript or Python.
Ideally, you get the best of both worlds: A UI with a drag & drop interface to build your pipelines and a way to provide your own business logic, in your language of choice.
👆 This is what Pipestack provides!
I recently read Why the Component Model?. It was a short, dense page and the content hit me hard.
To process it all, I went for a walk. And I had questions:
I needed answers for the last two questions! Luckily, all it took to find them was a bench to sit down, a smartphone, and access to the internet.
Voilà, there it was: wasmCloud. Their tagline couldn't be more aligned with what I needed: "Wasm-native Orchestration".
Wasm Components are lightweight, fast, sandboxed, and can be written in C/C++, C#, Go, JavaScript, Python, Rust. With more language support in the works. This means your team can leverage their existing skills, build systems, and experience.
After a day of reading docs and experimenting, I put together the following architecture diagram. It illustrates what a pipeline looks like at a high level as well as what individual steps (now called nodes) consist of.
There are three things you need to build a pipeline:
node-in
components in the diagram)node-process
components in the diagram)node-out
components in the diagram)Sources
A source is a place where data for your pipeline comes from. This could be an event when a new customer signs up for your product, a change in a database, an email you received, anything.
Ideally, you don't need to write any code to configure sources. Of course, you can, if you have unique requirements.
Processors
A processor is where your code comes to life. This is where your business logic lives. You define what happens, whether it's sending an email, updating a CRM, or triggering another workflow.
You write processors in any language that compiles to Wasm Components and simply upload it to a node within your pipeline.
Sinks
A sink is a place to store the output of your processors. Given the example of a new customer signup, a sink may be your email provider to send a welcome email. Another sink may be your CRM's API. Or a Slack webhook to celebrate the win!
Pipestack is currently a week old and in early development, but the foundation is solid and the vision is clear. Here's what you can expect in the coming months:
You can sign up and use Pipestack today! Before you ask, YES, Pipestack is built with Pipestack.
Early adopters get:
One of the most exciting aspects of the WebAssembly Component Model is reusability. I envision a marketplace where the community can share:
In fact, any source, processor, or sink I develop as part of Pipestack will be open source and form the foundation of that marketplace.
Interested in being part of the journey? Here's how you can stay connected:
The future of data pipelines is component-based, language-agnostic, and developer-friendly. Let's build it together! 🚀