Hive On Demand
No-code load testing on Nike's distributed load generator: build, run, and read a test without writing Gatling or waiting on another team's pipeline.
- Role
- Designer and owner of Hive On Demand; key developer on Hive
- When
- 2020 – 2026
- Stack
- React · AWS Lambda · API Gateway · Amazon ECS · S3 · DynamoDB · CloudFront · CloudFormation · Gatling
Nike's self-service distributed load-testing platform, a front end for Hive, Nike's in-house Gatling-based distributed load generator. I designed, built, and owned Hive On Demand in production for 5+ years, and was a key developer on Hive itself.
Problem
By 2020 I’d spent four years running load tests for other teams and teaching them to run their own on Hive. Hive was powerful, and it was too hard to use. When I started the project, I wrote down why. Hive:
- forced engineers to learn Scala and Gatling;
- was painful to wire into Jenkins and CI/CD;
- made every team fork and maintain its own copy of our sample load-test repository;
- gave little visibility into the health of the load generators;
- made errors hard to troubleshoot and the right logs hard to find.
Approach
- A guided way to build a test. Pick and validate a load generator and a target, model the simulation, and see its predicted outcome before running it. An importer reads a team’s existing simulation repository, so nobody starts from scratch. Scenario chaining, response validation, and custom load injectors let teams model real user journeys, not single endpoints.
- The same engine, without the plumbing. The containerized Hive CLI teams already trusted runs as an ECS task, orchestrated by a Lambda controller, with each run’s workspace and report in S3. Hive On Demand’s own infrastructure is in CloudFormation.
- Who it was for. Hive itself runs daily in several teams’ CI/CD pipelines, where microservice tests find bottlenecks, expose architectures that don’t scale, and give each team upper and lower bounds for its system. Hive On Demand served everyone else: teams that needed an ad hoc or experimental test without hand-writing a Gatling simulation, wiring it to their APIs, and running it through a Jenkins job another team managed. Its heaviest users included teams behind Nike’s high-demand launch platform, and I supported them directly, often by building the features they asked for.
- Owned, not just shipped. Launched in 2021 and kept current for five years: an AWS account migration, an AWS SDK v3 upgrade, redesigned connection testing and load injectors, and in 2026 an AI-planned hardening pass and routing to next-generation load generators. It’s still in use.
Architecture
From a browser form to a distributed test and a report
-
Step 1: Build
- Person: React SPA
- Tool or service: Simulation importer reads a team's existing repo
-
Step 2: Control
- Tool or service: Controller Lambda + API Gateway
-
Step 3: Run
- Tool or service: Hive CLI on ECS the engine teams already trusted
-
Step 4: Generate load
- Tool or service: Beekeeper + workerbees Gatling, distributed
-
Step 5: Report
- Data store: S3 workspaces and reports
- Person
- Tool or service
- Data store
Key decisions
-
Design from the pain list
On the first day I wrote down why teams struggled with Hive. The design removed each reason.
-
ECS, not Jenkins
A platform meant to free teams from pipeline plumbing couldn't depend on pipeline plumbing to run, so runs are ECS tasks behind a Lambda controller.
-
Reuse the engine teams already trust
Hive On Demand runs the existing containerized Hive CLI, so the experience changed and the results didn't.
Results
- designed
- 5+ yrs
- ad hoc and experimental load tests, built in a browser
- No code