Hi there, We have a number of IoT devices that send multiple related events in separate TCP packets to a Kafka broker. The IoT devices have access to a PLC system that monitors a set of sensors for an industrial steam boiler. The PLC raises multiple independent events for a random number of sensors per cycle where each cycle is uniquely identified by an id. Each PLC cycle may have a reading from 1 to 10 different sensors each of which is sent separately to an IoT device. The IoT device simply relay this event (one per sensor) to a Kafka broker. It’s a one-to-many relation (1 PLC cycle with a unique id = many events from multiple sensors) our goal is group the events per IoT device and plc_cycle_id and the order is constraint by a sequence number.
Here is a data sample: TCP packet #1: {plc_ cycle _id:”AABB”, sensors_per_cycle:3, seq_number:1, iot_device_id:1, sensor_data: {name:”pressure”, data:{value:16.3, si_unit:”bar”}} TCP packet #2: { plc_ cycle _id:” AABB”, sensors_per_cycle:3, seq_number:2, iot_device_id:1, sensor_data: {name:”watter_level”, data:{value:3.8, si_unit:”m”}} TCP packet #3: { plc_ cycle _id:” AABB”, sensors_per_cycle:3, seq_number:3, iot_device_id:1, sensor_data: {name:”steam_drum_temp”, data:{value:99.6, si_unit:”c”}} Each kafka event has a reference to the total events to be grouped (sensors_per_cycle) and the order for which those events will be grouped by, is taken from seq_number. Regards, Dave