Kaskade

Sequential, concurrent route testing straight from Node.js

Kaskade
3 min readFeb 14, 2024

Why Server Benchmarking?

Server benchmarking is crucial for identifying and addressing performance bottlenecks for two main reasons:

  1. Provides Server Performance Insights for DevOps
  2. Offers Route-Specific Performance Feedback for Developers

Why is route testing important?

In a traditional single-server system, benchmarking helps organizations anticipate and prepare for increased traffic, ensuring that the server can vertically scale to handle growing user demands. This is particularly important for applications expecting variable workloads or rapid growth.

When using cloud services that offer automated scalability and fault tolerance, benchmarking still gives important insights. Testing routes is crucial for optimizing costs, understanding application-specific performance, fine-tuning scalability, and ensuring overall efficiency and reliability in a dynamic and evolving application environment.

Why Kaskade?

Kaskade stands out for its user-friendly approach and adaptability. With a downloadable package and a straightforward configuration file, Kaskade ensures easy setup and execution right in Node.js. Node works across many platforms and we encourage community adoption and contributions. The configuration flexibility accommodates various testing scenarios, and the display of latency and bytes/sec metrics in a percentiles table enables in-depth performance analysis.

Features

  • Easy installation from npm
  • Intuitive JSON configuration file
  • Series of requests from one file
  • Results appear directly your terminal
  • It’s open-source!

Installation

  • Install kaskade dependency via npm (npm install kaskade-benchmarking)
  • Create a configuration file (config-file.json)
  • Set up your config file with formatting outlined in the Getting Started page of our Github
  • Create a test.js file, importing kaskade-benchmarking and the path to your configuration file
  • Enter the terminal node command on your specified test.js file and voilà! Finished metrics tables appear right in your terminal

What’s next?

We’re currently working on a GUI as an Electron app! Users can easily save and organize their series of requests, known as Sessions, enabling repeatable and customizable tests. The app’s intuitive interface simplifies the process of making requests, handling authentication and comparing Session results. The app will display metric results as tables and graphs, providing a visual representation of performance metrics. The app allows users to add notes and additional information to their sessions, fostering better collaboration and documentation. We’re excited for what’s next!

Contributing

Checkout our splash page (with an interactive demo) here!

Check out the Contributing section on our Github README!

If you have any questions about the product or contributing, feel free to email us at kaskadebenchmarking@gmail.com

or, directly reach out to our team members:

Joel Christopher — LinkedIn & Github

Jingjing Wang — LinkedIn & Github

Wenzhen Gong — LinkedIn & Github

Michael Mann — LinkedIn & Github

--

--