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.