Until today, every device on TagoIO stored data in one of two ways:
- Immutable devices are optimized for high-volume sensor data. Data is append-only, protected from changes, and managed through data retention policies. This is where your readings live.
- Mutable devices behave like a classic database. You can edit and delete individual records — ideal for data that changes over time.
Both work well for what they were designed to do. The friction appears when a single solution needs both.
The two-device workaround
Picture a common scenario: your sensors report machine status every minute, and an Analysis calculates the total turn time for each production cycle. The raw readings belong in an immutable device. But the calculated turn time needs to be updated every time a new cycle closes — so it can’t live there.
The same happens with alert thresholds that users adjust from a dashboard, or a 7-day consumption forecast that gets replaced with every new calculation. This data is ephemeral by nature: it exists to be overwritten.
The workaround was to create a second, mutable device and associate it with the first one. It works, but it doubles the devices to manage, splits your data across two places, and adds logic to your Analysis just to keep the pair in sync. Multiply that by 500 sensors and it becomes a real maintenance cost.
One device, both behaviors
Hybrid Devices solve this with a simple rule: everything is stored as immutable, with data retention applied — except variables that match a naming condition you define.
Set a prefix like _tx_, and any variable that matches it becomes mutable. For example:
temperature,machine_status→ immutable, protected, retained by your policy._tx_total_turn_time,_tx_forecast_7d,_tx_alert_threshold→ mutable, free to edit or delete whenever a new calculation comes in.
Your sensor history stays protected. Your calculated metrics stay flexible. One device, one token, one place to look.
The immutable side stays protected
Hybrid Devices don’t open a back door to your historical data. Once data is registered, you can’t change the naming condition in a way that would affect it. If you need to update the condition and it conflicts with existing records, you’ll have to empty the device data first.
That constraint is intentional: the guarantee of immutability only matters if there’s no way around it.
Same limits you already know
No new rules to learn here. Each side of a Hybrid Device follows the limits of its storage type:
- Immutable variables: up to 1 million data registers per chunk period, managed by your data retention policy.
- Mutable variables: up to 50,000 data records, just like a mutable device.
As always, all stored data counts toward your profile’s Data Records limit.
Getting started
You can create a Hybrid Device from the Devices module, the same way you create immutable and mutable devices today. Define your chunk period, retention, and mutable naming condition — and you’re ready to send data.

