1. A method of sharing a speech recognition workload among a plurality of servers, the method comprising: performing processing at a first speech recognition server, wherein the performing comprises: receiving, at the first speech recognition server, first feature data determined from an audio stream; accessing, in a memory of the first speech recognition server, a first data structure corresponding to a directed graph, the graph comprising a plurality of nodes and a plurality of arcs; determining, at the first speech recognition server, a second set of active nodes from a first set of active nodes, wherein the first set of active nodes are among the plurality of nodes, and wherein determining the second set of active nodes comprises computing at least one first score using the first feature data and a first arc of the plurality of arcs; determining that a processing load for the first speech recognition server has exceeded a threshold; transmitting, from the first speech recognition server to a second speech recognition server, information indicating the second set of active nodes; performing processing at a second speech recognition server, wherein the performing comprises: receiving, at the second speech recognition server, second feature data determined from the audio stream; accessing, in a memory of the second speech recognition server, a second data structure corresponding to the directed graph; determining, at the second speech recognition server, a third set of active nodes from the second set of active nodes, wherein determining the third set of active nodes comprises computing at least one second score using the second feature data and a second arc of the plurality of arcs; and determining speech recognition results using information relating to a first node of the first set of nodes, a second node of the second set of nodes, and a third node of the third set of nodes.