Saving on data operations?

Any ideas on savings on data operations?
Is it all based on chars sent and received, or number of publishs cost more than the data sent?
Do function calls cost less than publishes?

Hey there,

Here is a document that defines what a data operation is. Basically every value-added transaction, every publish, subscribe, function call, etc. is considered one data operation. Every function call counts the same as each publish and subscribe. It is not based on the amount of chars sent/received but on the number of transactions.

Obviously, the easiest way to save on data operations is to publish less frequently. You could deploy logic on the edge to change the publish frequency based off time of day (during certain set of hours) as an example, or if an anomaly (exception based reporting) is detected.

Another way to save on data operations is to “pack” as many data fields you can into one publish. This can be handled in many ways, but one way that I use frequently is using this library. The amount of data you can pack into each publish is dictated by the Device OS and hardware you selected. Refer to the API Limits doc for more information.

Along the same vein as packing, you can consider encoding each publish base64 or base85 to save on the number of bytes per field. You can also consider using Run Time Encoding (RTE) to greatly reduce the payload size.

I know this is high-level info, goal is to get you thinking of the various ways many of our customers use, and select which method fits your use case. Thanks.