Changelog

New features and improvements to Pipestack.

Changelog #0007

Off of last week's housekeeping, security, and performance testing, I tested a few theories to improve overall pipeline performance. The most promising is to migrate to WASI I/O streams. I spent some time this week building a successful prototype. It requires a bit of rewiring, but luckily nothing major thanks to how composable wasmCloud applications are.

Platform

  • N/A

CLI

  • N/A

Web

  • Removed a few dependencies I no longer needed. Less is more!
  • Explored what pipeline-level observability may look like. As a v1, I'll add a right-side panel to the Observability view access to logs.

Sources

  • N/A

Processors

  • N/A

Sinks

  • N/A

Miscellaneous

  • Configured Knope to automate the release of all nodes. As a nice benefit, all internal services are now properly versioned too and contain generated CHANGELOG.md files.

Changelog #0006

I want to spend a week every six (or so) weeks to clean things up and this week was the first such housekeeping week. Tech debt is real and kills velocity, so I actively counter that with regular cleanup work.

Address TODO comments, update project dependencies, refactor LLM-generated code. I also spent a few hours trying to break the system, both from a security and load test perspective. That led to a few fixes that could have been costly... :-).

Platform

  • Consolidated the communication with the Railway API to provision and maintain customer infrastructure.
  • Tightened the API security by removing public access to an endpoint that can now be accessed on the private network.

CLI

Web

  • N/A

Sources

  • N/A

Processors

  • N/A

Sinks

  • N/A

Miscellaneous

  • N/A

Changelog #0005

What a week... I onboarded the first (besides Pipestack itself) customer! It's an agricultural company that processes sensor data of their customers' machines.

It's a proof of concept project that runs in parallel to their existing pipelines. We processed data on day two (their IT team had to approve Pipestack's security). By the end of the week, I got to see the impact Pipestack has and it was beyond impressive 🤯. I knew Wasm Components were lightweight and extremely resource efficient, but now I have actual data. Think 80%+ improvements across CPU, memory, performance, and costs!

Platform

  • Improved on last week's NATS security work by further locking down and segregating communication.

CLI

  • N/A

Web

  • N/A

Sources

  • N/A

Processors

  • N/A

Sinks

  • N/A

Miscellaneous

  • N/A

Changelog #0004

Pipestack leverages wasmCloud, which is built on top of NATS.

The entire Pipestack infrastructure runs in a private network with no external incoming network access other than to the web app. This will change in the future when I introduce leaf nodes, a feature that lets you run individual nodes in your own infrastructure!

In preparation for that, I spent the week digging deep into NATS security. The end result: A secured NATS server with all communication now being encrypted.

Platform

  • Secured the NATS server.

CLI

  • N/A

Web

  • Improved usability for the Builder drag & drop interface. Zoom, pan, dragging is now more intuitive and frankly, less annoying.

Sources

  • N/A

Processors

  • N/A

Sinks

  • N/A

Miscellaneous

Changelog #0003

Building your pipelines with the drag & drop builder is a great way to get started. Looking at the underlying YAML config in the Config view has been fun, but not very helpful :-). That's why I enabled YAML editing, with a few guards to avoid disasters.

This builds the foundation for much more useful features down the road, namely sharing pipelines with copy & paste or direct links to a builder to get started with templates.

Platform

  • Refactored the pipeline_manager service. I initially had a LLM write most of the code, but it became a maintenance nightmare. No more!

CLI

  • N/A

Web

  • Enabled YAML editing in the Config view.

Sources

  • UPDATED Webhook
    • Extracted repetitive code to streamline the addition of new sources.

Processors

  • UPDATED Webhook
    • Extracted repetitive code to streamline the addition of new processors.

Sinks

  • UPDATED Webhook
    • Extracted repetitive code to streamline the addition of new sinks.

Miscellaneous

  • N/A

Changelog #0002

Observability! What I see is what you see. This week's focus was on exposing all logs related to your nodes in the web app's Observability view. There is more work needed to expose logs related to your pipeline overall and your execution environments. The goal is to expose anything I see in my OpenTelemetry dashboards to you.

Platform

  • Developed an API endpoint to fetch logs for individual nodes
  • Improved log attributes to simplify log fetching

CLI

  • N/A

Web

  • Improved the real-time log viewer for each node within a pipeline by adding a filter for levels, search, auto scroll, and a pause button.
  • Added an export button to the log viewer.

Sources

  • N/A

Processors

  • N/A

Sinks

  • UPDATED Webhook
    • Added Headers section.
    • Added Authentication section.
    • Added Validation & Limits section.

Miscellaneous

  • N/A

Changelog #0001

This is it, Pipestack's initial release 🎉! Don't let that fool you though, here's what I shipped.

Platform

  • Defined the YAML config schema
  • Configured CI / CD
  • Set up a project on Railway
  • Developed an infra_manager to, you guessed it, manage infrastructure for individual workspaces created in Pipestack
  • Developed a pipeline_manager used by the web app, future CLI, and a public API to manage pipelines
  • Deployed and configured wasmCloud, NATS, and OpenTelemetry (Prometheus, Tempo, Loki, Grafana)

CLI

  • Not started yet. I'm torn between my CLI template and a more forward-looking approach where each CLI command is a Wasm Component. Anyone could extend the CLI with their own commands, written in a programming language they're familiar with

Web

  • Started a new Remult project with SvelteKit, shadcn-svelte, and Svelte Flow
  • Created the marketing landing page based on a $30 template
  • Put in place a newsletter infrastructure
  • Developed the drag & drop interface used for the pipeline builder
  • Added a real-time log viewer for each node within a pipeline

Sources

  • NEW Webhook
    • You can send a GET or more likely POST request to kick off a pipeline

Processors

  • NEW Wasm Component
    • Upload your own Wasm Component

Sinks

  • NEW Webhook
    • Take the output of a pipeline and send it to your API endpoint(s)

Miscellaneous