Armored Carrier — Parallel Processing Cluster¶
A complete, turnkey pipeline for complex orchestration that automatically dispatches parallel tasks and aggregates the results, all within a sealed Zero Trust environment.
Tags: Armored Car | Single Cluster | HTTP1/REST | 6 Pods
Overview¶
The Armored Carrier (Parallel Processing Cluster) implements a full scatter/gather pattern across six pods. A Gateway/Initiator (http-gateway) triggers the network; a Distributor/Router (http-fan-out) broadcasts to two Relay/Processor pods (http-relay); an Aggregator (http-fan-in) collects both results; a Sink/Terminator (http-sink) delivers the final output.
All six pods run Armored Car mode (xtra7) with per-request key rotation on every hop.
flowchart TD
A["Gateway / Initiator\n(http-gateway)"]
B["Distributor / Router\n(http-fan-out)"]
C["Relay / Processor\n(http-relay)\nprocessor-a"]
D["Relay / Processor\n(http-relay)\nprocessor-b"]
E["Aggregator\n(http-fan-in)"]
F["Sink / Terminator\n(http-sink)"]
A -->|"WoSP xtra7"| B
B -->|"WoSP xtra7"| C
B -->|"WoSP xtra7"| D
C -->|"WoSP xtra7"| E
D -->|"WoSP xtra7"| E
E -->|"WoSP xtra7"| F Use Cases¶
- Map-reduce patterns inside a Zero Trust network
- Parallel task dispatch with result aggregation (e.g., multi-model inference, parallel API calls)
- Orchestration pipelines where a coordinator dispatches N workers and waits for all results
- Complex data processing where independent stages run concurrently
Bundle Contents¶
armored-carrier-parallel/
├── gateway/ ← http-gateway (boundary)
├── distributor/ ← http-fan-out (internal)
├── processor-a/ ← http-relay (internal)
├── processor-b/ ← http-relay (internal)
├── aggregator/ ← http-fan-in (internal, INGRESS_COUNT=2)
├── sink/ ← http-sink (boundary)
├── deploy.sh
├── teardown.sh
├── pinhole-setup.sh
├── blueprint.yaml
├── README.md
└── EULA.md
Deploy¶
Prerequisites: Docker Desktop, k3d >= 5.0, kubectl, valid Hopr license
Verify¶
Expected output:
Confirm aggregated results at the sink:
kubectl port-forward -n armored-carrier-parallel-sink-ns deployment/sink 8000:8000
curl http://localhost:8000/output
Expected: {"count": 5, "results": [...]}. Each result contains combined output from both processors.
Customize¶
Hook functions for this blueprint:
on_trigger(payload, headers)— ingateway/app/app.py: initial validation and task definitionon_receive_fan_out(payload)— indistributor/app/app.py: task routing logicon_receive_relay(payload)— inprocessor-a/app/app.pyandprocessor-b/app/app.py: parallel task executionon_aggregate(partials)— inaggregator/app/app.py: merge the two processor resultson_receive_terminator(payload)— insink/app/app.py: final output handling
Pricing¶
6 WoSP units (1 per pod). See Commercial Licensing.