Buffering Data in a PLC --> Ignition --> SQL

Looking for approach advice on a use-case I have not handled before.
I've got a remote PLC that has an pretty unstable network connection. This PLC collects serial data and aggregates it into a 1D-Array of UDT / Struct. Members of the UDT include a serial number, timestamp, RFID, and weight. The goal is to get this data into SQL Server using Ignition.

What's the best way to go about this considering the network instability? I essentially need to buffer data in the PLC. I was thinking of modifying the remote PLC logic to implement a FIFO, any have Ignition continuously read the Length parameter. Anytime length > 0, then send have Ignition set a bit to unload a value into a defined tag, read the tag and store in SQL, then repeat until array length = 0.

Advice & alternatives welcome!

Instead of moving data around (FIFO), just keep numeric tags that serve as head and tail subscripts into the array of structs. Then just increment and roll over as entries are placed in the array (head pointer) and read from the array by Ignition (tail pointer). This is called a ring buffer and is very efficient.

PLC updates the head pointer to indicate the most recent entry. Ignition updates the tail pointer to indicate the most recently saved entry. When they are equal, Ignition is caught up. When ((head + 1) % len) == tail, the array is full and the process should stop.

You are always a wealth of knowledge! Love this solution.