VeUP
← All case studies
Amazon MSK Service Delivery · MSK streaming layer
Tenderd wordmark

Tenderd: a Control Tower-governed, region-locked AWS landing zone in the UAE

Sovereign in-country landing zonePolicy-enforced region lockData residencyMulti-account segmentationPreventive controlsCentralized immutable audit loggingCentralized workforce identityIdentity federation & MFA enforcementEncryption-at-rest enforcementPrivate connectivity & network isolationInfrastructure-as-code foundationCI/CD delivery pipeline automationDay-2 runbooks & team enablementCloud-to-cloud migrationPhased cutover with parity validationContainer platform modernizationConnected device telemetry & alertingInfrastructure observabilitySecrets management & credential eliminationMigration TCO & business case modellingTarget-state architecture design & costed POC
Eligible
UAE public-sector contracts unlocked by in-country residency
2 → 5
governance and security maturity, five-point CAF scale
0
standing console access — every change through reviewed Terraform
Amazon MSKAmazon ECS (Fargate)Amazon RedshiftAWS DataSync

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.

Tenderd — Amazon MSK lens: the fleet-telemetry streaming layer of the GCP-to-AWS migration architecture. A Multi-AZ VPC in me-central-1 with the Amazon MSK cluster spanning both Availability Zones at the centre, Confluent Kafka connectivity bridging the migrating producers, ECS Fargate IoT data-processing services and Lambda as consumers, EventBridge scheduling, Amazon Redshift as the log and analytics warehouse, RDS and ElastiCache, AWS DataSync moving GCP Cloud Storage objects into S3, MongoDB Atlas syncing ahead of cutover, and a CloudFront, WAF, API Gateway and Cognito edge.
The streaming-layer view of the migration architecture — MSK brokers spanning AZs at the centre, producers bridged in via Confluent connectivity, consumers and the analytics tier fed downstream.

Production outcomes

KPIResult
Ecosystem preservedKafka semantics and Confluent connectivity carried across the cloud migration intact — no producer or consumer rewrites forced by the platform move.
Operations retiredBroker provisioning, patching, and recovery moved to the managed service — the platform team’s streaming work reduced to topics, schemas, and consumers.
Streaming as codeMSK provisioned by Terraform per delivery environment — streaming configuration promoted through dev/test/pre-prod/prod like any other reviewed change.
Lessons & continuationIn 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.
AWS services in production
Amazon MSK (managed Apache Kafka)Amazon ECS (Fargate)Amazon EventBridgeAmazon RedshiftAWS DataSyncAmazon S3Amazon RDSAmazon ElastiCache
Terraform