An apparatus for storing real-time data, comprising: a storage device configured to store a file , and to store a field indicative of a persisted size of the real-time data persisted to the file; a memory arranged to store a first buffer configured to store first buffer data, a second buffer configured to store second buffer data, and to store a variable indicative of the persisted size ; and a processor configured: to receive a stream of the real-time data, to append the stream of the real-time data to the first buffer data, upon meeting a write criteria: to swap the first buffer data in the first buffer with the second buffer data in the second buffer , to add a buffer size of the second buffer data in the second buffer to the variable , and to call a write function configured to convey the second buffer data from the second buffer to a write cache , and upon meeting a commit criteria: to call a commit function configured to append the stream of the real-time data stored in the write cache to the file , and to persist the variable to the field ; wherein the write criteria is a specified time period since the processor last called the write function. a storage device configured to store a file , and to store a field indicative of a persisted size of the real-time data persisted to the file; a memory arranged to store a first buffer configured to store first buffer data, a second buffer configured to store second buffer data, and to store a variable indicative of the persisted size ; and a processor configured: to receive a stream of the real-time data, to append the stream of the real-time data to the first buffer data, upon meeting a write criteria: to swap the first buffer data in the first buffer with the second buffer data in the second buffer , to add a buffer size of the second buffer data in the second buffer to the variable , and to call a write function configured to convey the second buffer data from the second buffer to a write cache , and upon meeting a commit criteria: to call a commit function configured to append the stream of the real-time data stored in the write cache to the file , and to persist the variable to the field ; wherein the write criteria is a specified time period since the processor last called the write function. to receive a stream of the real-time data, to append the stream of the real-time data to the first buffer data, upon meeting a write criteria: to swap the first buffer data in the first buffer with the second buffer data in the second buffer , to add a buffer size of the second buffer data in the second buffer to the variable , and to call a write function configured to convey the second buffer data from the second buffer to a write cache , and to swap the first buffer data in the first buffer with the second buffer data in the second buffer , to add a buffer size of the second buffer data in the second buffer to the variable , and to call a write function configured to convey the second buffer data from the second buffer to a write cache , and upon meeting a commit criteria: to call a commit function configured to append the stream of the real-time data stored in the write cache to the file , and to persist the variable to the field ; to call a commit function configured to append the stream of the real-time data stored in the write cache to the file , and to persist the variable to the field ; wherein the write criteria is a specified time period since the processor last called the write function. <EOS>