1. A method of processing data in an integrated circuit, the method comprising: establishing a key-value store; receiving data for a transaction at an input to a pipeline of processing blocks, wherein each processing block has a different function; encoding state of the transaction as metadata that enables a subset of the processing blocks for processing the data; passing the data and the metadata through the pipeline of processing blocks as a data packet having the data and the metadata; and accessing the key-value store while processing the data in the subset of the processing blocks based upon the metadata.