A step-by-step look at moving software-defined vehicle telemetry from edge to cloud with NATS and Google Cloud Bigtable
Hey there! I'm Peter, a Technical Marketing Engineer at Synadia.
I recently took on an interesting challenge: show how our customers can stream telemetry from software-defined vehicles to the cloud. One small problem—I don't exactly have a fleet of connected cars parked in my garage.
So I did the next best thing and built a Go-based vehicle simulator that acts just like the real thing. My virtual vehicles cruise around sending GPS locations, battery levels, and temperature readings in real-time through NATS (our messaging system that handles all the heavy lifting).
All this data flows smoothly into Google Cloud Bigtable, where it's ready for dashboards and alerts—just like data from actual vehicles would be.
In this post, I'll walk you through how I put this whole system together. No fancy jargon, just practical steps you can follow to build something similar.
To see the demo in action, watch the demo video.
Architecture Overview
Here's how the data flows:
- Simulated vehicle sensors produce telemetry data
- Data is streamed through NATS on Synadia Cloud
- A connector sends it to Google Cloud Bigtable
- (Optional) Looker Studio turns raw data into insights
This architecture is lightweight and highly scalable, ideal for fleets, testbeds, or edge deployments.
Step 1: Simulate Telemetry Data
1 var (2 natsURL = flag.String("nats", "tls://connect.ngs.global", "NATS server URL")3 creds = flag.String("creds", "NGS-Default-CLI.creds", "")4 subject = flag.String("subject", "demo.vehicles", "NATS subject to publish to")5 interval = flag.Duration("interval", time.Second, "Interval between publications")6 numVehicles = flag.Int("vehicles", 10, "Number of different vehicles to simulate")7 )8 flag.Parse()
A simple Go program generates real-time vehicle data:
- Subject:
demo.vehicles
- Payload includes vehicle ID, GPS, battery status, and temperature
- Each message simulates a real sensor reading in motion.
Step 2: Monitor with Synadia Cloud
To confirm data flow:
- Open the Synadia Cloud dashboard
- Enable Live Mode on the stream
- Watch real-time messages and inspect content
This verifies your data is streaming correctly and in the expected format.
Step 3: Configure Google Cloud Bigtable
On the Google Cloud side:
- Set up a Bigtable instance
- Create a vehicles table
- Set up a service account with required permissions
Bigtable’s high throughput and low latency make it ideal for storing time-series vehicle data.
Step 4: Connect NATS to Bigtable
Inside Synadia Cloud:
- Go to Connectors
- Create a new outlet connector to GCP Bigtable
- Enter your project ID, instance, and credentials
- Map the vehicle ID as the row key
- Map remaining fields as columns
- Deploy the connector
Telemetry data now streams from Synadia into Bigtable in real-time.
Step 5: Verify Data in Bigtable
Use Bigtable Studio to:
- Query your vehicles table
- Monitor real-time updates
- Confirm structure and integrity
Step 6 (Optional): Visualize with Looker Studio
Connect Looker Studio to Bigtable to build dashboards:
- Visualize trends for engineering and operations teams
- Create alerts for key events
- Share reports with decision-makers
Looker Studio turns telemetry into actionable insight.
Why This Matters
This demo showcases how NATS and Synadia simplify software-defined vehicle telemetry, easily moving data from edge to cloud. But NATS does more than move data between the edge and the cloud.
NATS is uniquely suited for the complex environment of software-defined vehicles (SDV), because it can serve as both:
- An internal nervous system
- The robust bridge to the cloud
NATS is incredibly lightweight (less than 20MB), making it ideal for deployment directly within the vehicle's resource-constrained environment.
Here, it decouples internal components – the GPS module, navigation system, sensors, etc. – allowing them to communicate via publish/subscribe messaging. This simplifies development immensely; updating a component doesn't require rewriting the software that consumes its data, and new features needing existing data streams can be added easily.
NATS excels at connecting the vehicle to the cloud, even over unreliable mobile networks. Using its JetStream persistence layer and Leaf Node configuration, the in-vehicle NATS server intelligently manages communication with cloud-based NATS clusters. Its built-in store-and-forward mechanism guarantees message delivery (in both directions) despite intermittent connectivity.
This shields developers from the complexities of network instability, ensuring critical telemetry data reaches the cloud (and eventually destinations like Bigtable via Synadia Connectors). Configurations and other commands can also go the other direction and reach the vehicle reliably.
In essence, NATS provides a seamless, resilient messaging fabric that simplifies integration both inside the vehicle and between the vehicle and the cloud. This foundation unlocks powerful use cases – from real-time fleet management and remote diagnostics streaming to over-the-air updates – enabling the sophisticated, connected experiences that define modern SDVs.
Final Thoughts
This end-to-end pipeline “from sensors to insights” is fast to set up, production-ready, and resource-efficient.
Whether you're developing a software-defined vehicle (SDV) prototype or building a fleet management solution for another kind of IoT device, the combination of Synadia and Google Cloud Bigtable gives you robust, scalable telemetry pipelines that move data from edge to cloud seamlessly.
Ready to try it out for yourself? Create your telemetry proof of concept today with Synadia Cloud.