Overview

Learn what LoadStrike does and how it follows one transaction across systems. Start here if you are new to the product model.

What this page helps you do

What this page helps you do

Learn what LoadStrike does and how it follows one transaction across systems. Start here if you are new to the product model.

Who this is for

Engineers starting a first LoadStrike evaluation or wiring the product into an existing test project.

Prerequisites

  • A supported SDK and runtime for the path you plan to use

By the end

A clear next step in the first runnable LoadStrike workflow.

Use this page when

Use this page when you are still establishing the first runnable path and want the shortest correct next step.

Visual guide

Sequence diagram showing how a LoadStrike workflow moves from setup to report output.
This page fits into the same setup, run, correlate, and report flow as the rest of the public LoadStrike runtime.

Guide

What It Solves

LoadStrike is built for workloads that do not end at the first request. It can follow work across HTTP, Kafka, NATS, Redis Streams, RabbitMQ, Event Hubs, Push Diffusion, and delegate-based custom streams.

How Correlation Works

LoadStrike looks for the same tracking ID at the start and end of the workflow. It can read that value from headers or body selectors, then match the first valid result, count duplicates, and enforce a timeout window.

Run Modes

Use GenerateAndCorrelate when LoadStrike should create the source traffic itself. Use CorrelateExistingTraffic when both sides of the workflow already exist and LoadStrike only needs to observe them. Source-only reporting is also supported when there is no destination.

Getting started samples

Use these samples to move from the shortest supported setup path into runnable scenario code without guessing what the SDK surface looks like.

If you run these examples locally, add a valid runner key before execution starts. Set it with WithRunnerKey("...") or the config key LoadStrike:RunnerKey.

Minimal Run

using LoadStrike;

var httpClient = new HttpClient
{
    BaseAddress = new Uri("https://api.example.com")
};

var scenario = LoadStrikeScenario.Create("read-order", async context =>
{
    var orderId = $"ord-{context.InvocationNumber}";

    var step = await LoadStrikeStep.Run<string>("GET /orders/{id}", context, async () =>
    {
        using var response = await httpClient.GetAsync($"/orders/{orderId}");

        return response.IsSuccessStatusCode
            ? LoadStrikeResponse.Ok<string>(statusCode: ((int)response.StatusCode).ToString())
            : LoadStrikeResponse.Fail<string>(
                statusCode: ((int)response.StatusCode).ToString(),
                message: "Order lookup failed");
    });

    return step.AsReply();
})
.WithLoadSimulations(
    LoadStrikeSimulation.Inject(10, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(20))
);

LoadStrikeRunner.RegisterScenarios(scenario)
    .WithRunnerKey("rkl_your_local_runner_key")
    .Run();

Flow

Scenario

Define one runnable workload unit before you add any correlation or transport-specific behavior.

Step

Wrap the HTTP call in a named step so reports show where the request spent time.

Run

Register the scenario, provide a valid runner key, and execute to produce runtime stats and reports.