Temporal as a generic purpose load testing framework

We actually use Temporal workflows to perform load testing of the Temporal service itself. There are also proprietary implementations of frameworks similar to chaosmonkey that use Temporal to execute failure testing scenarios.

So I think Temporal is a perfect technology for this use case.

A question that immediately comes to mind is whether the “latency” that Temporal puts on the execution of workflows/tasks would not defeat the whole purpose of performance testing.

All the frameworks I know execute the heavy load generation from long running activities. For example, you can have an activity that in a loop performs S3 upload a preconfigured number of times. Then the workflow ensures that a configured number of such activities is executed and reports completion when done. In such usage latency of the Temporal itself doesn’t really come into play.

Another interesting question is whether Temporal can handle the load of the resulting data or it should be stored outside.

I think all the metrics and other artifacts produced by load tests should live outside and only data related to the scenario control plane should float through Temporal workflows.

I envision a system that has some sort of DSL that describes a test scenario. Then the workflow executes the scenario based on the configuration.

1 Like