1. An apparatus for processing a packet comprising: a plurality of clusters, each cluster including a plurality of processors for processing lookup requests and a local memory storing a set of rules; and a front-end configured to forward the lookup requests to the plurality of clusters and receive response messages from the plurality of clusters; each of the plurality of clusters being configured to: receive a key request including a key and a table identifier (TID), the key including data extracted from a packet; generate a work product associated with the key request, the work product corresponding to a process of rule-matching at least one field of the key; determine whether to forward the work product to another of the plurality of clusters; and based on the determination, forward the work product to another of the plurality of clusters.