1. An apparatus, comprising: a main memory configured to store data elements; write circuitry configured to: write a first data packet as first data elements to the main memory; write a first child distributed linked list that includes first data-element pointers to the main memory to interconnect the first data elements stored in the main memory; write a parent distributed linked list to include a first snapshot that represents (i) a first child pointer to the first child distributed linked list and (ii) a first sequence identifier associated with the first snapshot; after writing the first data packet to the main memory, write a second data packet as second data elements to the main memory; write a second child distributed linked list that includes second data-element pointers to the main memory to interconnect the second data elements stored in the main memory; and update the parent distributed linked list to include a second snapshot that represents (i) a second child pointer to the second child distributed linked list and (ii) a second sequence identifier associated with the second snapshot; and read circuitry configured to read the first data packet and the second data packet in sequence using respectively the first snapshot and the second snapshot included in the parent distributed linked list, wherein an order of the read is based on sequence identifiers.