
Tenderd: a Control Tower-governed, region-locked AWS landing zone in the UAE
Fleet telemetry is Tenderd’s raw material, and Kafka is how it moves. In the GCP-to-AWS migration VeUP authored, the streaming layer lands on Amazon MSK — managed Apache Kafka carrying the platform’s fleet-telemetry streams, retaining Confluent Kafka connectivity and the IoT data-processing componentry, while the undifferentiated work of broker operations moves to AWS.
The challenge
An AI fleet-analytics platform lives on its event streams: telemetry from vehicles and heavy equipment feeds the models, dashboards, and alerts customers pay for. Tenderd’s streaming layer had to cross clouds without breaking the Kafka ecosystem the platform was built on — producers, consumers, and Confluent connectivity all expecting Kafka semantics — and land in a form the small platform team could operate across four delivery environments without becoming broker administrators. Re-writing the streaming layer to a different technology mid-migration was the risk to avoid; running self-managed Kafka on AWS was the toil to avoid.
The solution
VeUP’s architecture takes the third path: Amazon MSK as the managed Kafka streaming layer, giving the platform wire-compatible Kafka — existing producers, consumers, and Confluent connectivity carry over — with brokers, patching, and failure recovery handled by the service. The streams feed the platform’s IoT data-processing components and the analytics tier, where Amazon Redshift serves as the log and analytics warehouse; the application plane around the streams runs on Amazon ECS Fargate with EventBridge-driven scheduling; and bulk data moves from GCP Cloud Storage into Amazon S3 via AWS DataSync, with MongoDB Atlas production data syncing continuously ahead of cutover. Like the rest of the estate, the MSK clusters are Terraform-provisioned per delivery environment — dev through production — so the streaming layer’s configuration is versioned, reviewed, and identical wherever it runs, with the production migration sequenced to Middle East region availability.

Production outcomes
| KPI | Result |
|---|---|
| Ecosystem preserved | Kafka semantics and Confluent connectivity carried across the cloud migration intact — no producer or consumer rewrites forced by the platform move. |
| Operations retired | Broker provisioning, patching, and recovery moved to the managed service — the platform team’s streaming work reduced to topics, schemas, and consumers. |
| Streaming as code | MSK provisioned by Terraform per delivery environment — streaming configuration promoted through dev/test/pre-prod/prod like any other reviewed change. |
| Lessons & continuation | In a cloud migration, the streaming layer is where re-write risk concentrates — managed Kafka converts it to a lift with continuity; keep the ecosystem, move the operations. |