1. A non-transitory computer-readable medium having stored thereon computer-readable instructions that when executed by a computing device cause the computing device to: receive a block of streamed data, wherein the block includes a value associated with an event and a unique identifier of the event; select a pre-allocated block of memory, wherein the pre-allocated block of memory includes one or more previously compressed blocks, wherein each of the one or more previously compressed blocks includes an associated value and a different unique identifier; compress the received block with the one or more previously compressed blocks to create a new compressed block; store the new compressed block in the selected pre-allocated block of memory, wherein a reference to the selected pre-allocated block of memory is stored in a tree map based on the unique identifier; receive a second block of streamed data, wherein the second block includes a second value associated with the event and the unique identifier of the event, wherein the second value is different from the value; identify the pre-allocated block of memory from the tree map using the unique identifier; read the received block and at least one of the one or more previously compressed blocks from the identified pre-allocated block of memory; select a second pre-allocated block of memory; compress the received second block with the at least one of the one or more previously compressed blocks to create a second new compressed block; store the second new compressed block in the selected second pre-allocated block of memory, wherein a reference to the selected second pre-allocated block of memory is stored in the tree map based on the unique identifier; receive a request for an update for the event based on the unique identifier from a requesting event client system; and send the stored, second new compressed block to the requesting event client system.