Instantly Starting Batch Downloads

CI/CD
Jul 10, 2025
Dan Manges
Instantly Starting Batch Downloads

We recently added the capability to download logs for an entire group of tasks. Groups can include embedded runs, parallel tasks, or calls to packages.

Asynchronous User Experience

At first, we thought we were going to have to build an asynchronous user experience commonly used for batch downloads. We have some customers who run hundreds of parallel tasks, and with logs containing several megabytes, an archive for an entire group could be quite large.

The common UX for this is:

RWX is a platform built on performance though, so we wanted to figure out how to make the UX faster.

Immediate Download User Experience

Part of optimizing our platform is doing as much work as possible on the fly. For example, when processing task outputs, we calculate file system hashes while we're uploading.

We realized that although we needed to build an archive of all of the log files, we could build it on the fly as we're streaming the contents to the user.

This user experience is much better:

Demo

Never miss an update

Get the latest releases and news about RWX and our ecosystem with our newsletter.

Share this post

Enjoyed this post? Pleas share it on your favorite social network!

Related posts

Read more on updates and advice from the RWX engineering team

See all posts
Fast File Tree Navigation, Powered by WebAssembly
CI/CD

Fast File Tree Navigation, Powered by WebAssembly

We shipped a web-based file tree navigator to see files from a task's output. To make browsing as fast as possible, we implemented it in WebAssembly.

Jul 11, 2025
Read now
Which Version of Node.js Does VS Code Use to Run Extensions?
CI/CD

Which Version of Node.js Does VS Code Use to Run Extensions?

When we built our language server and VS Code extension we wanted to determine the version of Node.js that VS Code uses to run extensions.

Jul 9, 2025
Read now
Node 22.7 Broke Character Encoding
CI/CD

Node 22.7 Broke Character Encoding

Node 22.7.0 introduced bugs with character encoding. As a best practice, pin to specific versions of runtimes in a .tool-versions file.

Jul 8, 2025
Read now