Run the Whole-Payload Encryption Benchmark
This page reproduces the Whole-Payload Encryption Benchmark with the Aklivity fork of the OpenMessaging Benchmark (OMB) on AWS. The run sends the same workload through four setups: Apache Kafka directly, Zilla Plus with TLS passthrough, Zilla Plus with whole-payload encryption, and Zilla Plus with structured field encryption.
Provision the Environment
Clone and build the OMB fork:
git clone https://github.com/aklivity/openmessaging-benchmark.git
cd openmessaging-benchmark
mvn clean install -Dlicense.skip=trueFollow the prerequisites and Terraform steps in the deployment README with the 2cku setup. It provisions 3 Zilla Plus instances, 6 benchmark clients, 6 Kafka brokers, 3 controllers, and 1 Prometheus instance, all on m5.xlarge.
The deployment's templates/zilla.yaml defines a separate Zilla Plus listener for each encryption setup. Encryption keys come from a local filesystem vault, so no external KMS is needed.
Run the Workloads
From the OMB root directory, load your SSH key and generate the workloads:
eval $(ssh-agent)
ssh-add ~/.ssh/omb
./confluent-bin/create-blog-workloads.shEvery setup runs the 1 KiB JSON event workload at 24 MB/s:
| Setup | Scenario |
|---|---|
| Direct to Kafka | ak |
| TLS passthrough | zpak |
| Whole-payload encryption | zpak-encrypt |
| Structured field encryption | zpak-structured-field-encrypt |
Run each setup in turn:
./confluent-bin/run-workloads.sh ak workloads/confluent-blog-workloads-2cku-1p-1c-1Kb-45topic-200part-24MBps.yaml
./confluent-bin/run-workloads.sh zpak workloads/confluent-blog-workloads-2cku-1p-1c-1Kb-45topic-200part-24MBps.yaml
./confluent-bin/run-workloads.sh zpak-encrypt workloads/confluent-blog-workloads-2cku-1p-1c-1Kb-45topic-200part-24MBps.yaml
./confluent-bin/run-workloads.sh zpak-structured-field-encrypt workloads/confluent-blog-workloads-2cku-1p-1c-1Kb-45topic-200part-24MBps.yamlEach run uses a 30-minute warm-up and a 60-minute measurement.
Chart the Results
When a run completes, OMB writes output.txt to the results/ directory. Generate publish and end-to-end latency charts from it:
python3 ./bin/create_charts.py results/<your-result-folder>/output.txtTear Down
From the deployment directory, destroy the AWS resources:
cd driver-kafka/deploy/aklivity-deployment
terraform destroy
