Quick Start
Create a source, destination, and scenario-level configuration in minutes.
Define Endpoints
Create source and destination endpoint objects with matching tracking selectors.
Configure Scenario
Attach CrossPlatformTrackingConfiguration using CrossPlatformScenarioConfigurator.Configure.
Run
Register scenario(s), set WithRunnerKey(...), choose the runner environment when needed, and execute with report formats enabled.
Feature Usage Samples
How to use snippets for Quick Start.
Switch between C#, Java, Python, TypeScript, and JavaScript to see the native SDK shape for this sample.
Licensing note: every runnable sample requires a valid runner key via WithRunnerKey("...") or config key LoadStrike:RunnerKey.
Quick Start
var source = new HttpEndpointDefinition
{
Name = "api-in",
Mode = TrafficEndpointMode.Produce,
TrackingField = TrackingFieldSelector.Parse("header:X-Correlation-Id"),
Url = "https://localhost:5001/orders",
Method = "POST",
MessagePayload = new { orderId = 1001 }
};
var destination = new KafkaEndpointDefinition
{
Name = "kafka-out",
Mode = TrafficEndpointMode.Consume,
TrackingField = TrackingFieldSelector.Parse("header:X-Correlation-Id"),
BootstrapServers = "localhost:9092",
Topic = "orders.events",
ConsumerGroupId = "orders-tests"
};
import com.loadstrike.runtime.CrossPlatformTrackingConfiguration;
import com.loadstrike.runtime.HttpEndpointDefinition;
import com.loadstrike.runtime.KafkaEndpointDefinition;
import com.loadstrike.runtime.LoadStrikeCorrelation.TrackingFieldSelector;
import com.loadstrike.runtime.LoadStrikeTransports;
var source = new HttpEndpointDefinition();
source.name = "http-source";
source.mode = LoadStrikeTransports.TrafficEndpointMode.Produce;
source.trackingField = TrackingFieldSelector.parse("header:X-Correlation-Id");
source.url = "https://orders.example.com/api/orders";
source.method = "POST";
source.messagePayload = java.util.Map.of("orderId", 1001);
var destination = new KafkaEndpointDefinition();
destination.name = "kafka-destination";
destination.mode = LoadStrikeTransports.TrafficEndpointMode.Consume;
destination.trackingField = TrackingFieldSelector.parse("header:X-Correlation-Id");
destination.bootstrapServers = "localhost:9092";
destination.topic = "orders.completed";
destination.consumerGroupId = "orders-tests";
var tracking = new CrossPlatformTrackingConfiguration();
tracking.source = source;
tracking.destination = destination;
tracking.runMode = LoadStrikeTransports.TrackingRunMode.GenerateAndCorrelate;
tracking.correlationTimeoutSeconds = 30d;
from loadstrike_sdk import (
CrossPlatformScenarioConfigurator,
LoadStrikeScenario,
LoadStrikeSimulation,
)
tracking = {
"RunMode": "GenerateAndCorrelate",
"CorrelationTimeoutSeconds": 30,
"Source": {
"Kind": "Http",
"Name": "http-source",
"Mode": "Produce",
"TrackingField": "header:X-Correlation-Id",
"Url": "https://orders.example.com/api/orders",
"Method": "POST",
"MessagePayload": {"orderId": 1001},
},
"Destination": {
"Kind": "Kafka",
"Name": "kafka-destination",
"Mode": "Consume",
"TrackingField": "header:X-Correlation-Id",
"BootstrapServers": "localhost:9092",
"Topic": "orders.completed",
"ConsumerGroupId": "orders-tests",
},
}
scenario = (
CrossPlatformScenarioConfigurator.Configure(
LoadStrikeScenario.empty("orders-http-to-kafka"),
tracking,
)
.with_load_simulations(LoadStrikeSimulation.iterations_for_constant(1, 1))
)
import {
CrossPlatformScenarioConfigurator,
LoadStrikeScenario,
LoadStrikeSimulation,
TrackingFieldSelector
} from "@loadstrike/loadstrike-sdk";
const tracking = {
RunMode: "GenerateAndCorrelate",
CorrelationTimeoutSeconds: 30,
Source: {
Kind: "Http",
Name: "http-source",
Mode: "Produce",
TrackingField: new TrackingFieldSelector("Header", "X-Correlation-Id"),
Url: "https://orders.example.com/api/orders",
Method: "POST",
MessagePayload: { orderId: 1001 }
},
Destination: {
Kind: "Kafka",
Name: "kafka-destination",
Mode: "Consume",
TrackingField: new TrackingFieldSelector("Header", "X-Correlation-Id"),
BootstrapServers: "localhost:9092",
Topic: "orders.completed",
ConsumerGroupId: "orders-tests"
}
};
const scenario = CrossPlatformScenarioConfigurator
.Configure(LoadStrikeScenario.empty("orders-http-to-kafka"), tracking)
.withLoadSimulations(LoadStrikeSimulation.iterationsForConstant(1, 1));
const {
CrossPlatformScenarioConfigurator,
LoadStrikeScenario,
LoadStrikeSimulation,
TrackingFieldSelector
} = require("@loadstrike/loadstrike-sdk");
const tracking = {
RunMode: "GenerateAndCorrelate",
CorrelationTimeoutSeconds: 30,
Source: {
Kind: "Http",
Name: "http-source",
Mode: "Produce",
TrackingField: new TrackingFieldSelector("Header", "X-Correlation-Id"),
Url: "https://orders.example.com/api/orders",
Method: "POST",
MessagePayload: { orderId: 1001 }
},
Destination: {
Kind: "Kafka",
Name: "kafka-destination",
Mode: "Consume",
TrackingField: new TrackingFieldSelector("Header", "X-Correlation-Id"),
BootstrapServers: "localhost:9092",
Topic: "orders.completed",
ConsumerGroupId: "orders-tests"
}
};
const scenario = CrossPlatformScenarioConfigurator
.Configure(LoadStrikeScenario.empty("orders-http-to-kafka"), tracking)
.withLoadSimulations(LoadStrikeSimulation.iterationsForConstant(1, 1));
Quick Start Parts
Defines where LoadStrike creates the tracked source traffic.
Defines where LoadStrike listens for the correlated downstream event.
Must point to the same business identifier on both sides so correlation can succeed.
Wraps the source and destination in a scenario so the runtime can execute, correlate, and report the results.
Registers the scenario, applies the runner key, and starts the run with reports enabled.
{ "orderId": 1001 }