A correlation system receives multiple events and multiple data elements.
The multiple events and data elements are applied to a correlation
function which is implemented as a state machine. A specific event is
generated if the correlation function is satisfied by the multiple events
and the multiple data elements. Additional events and data elements are
received if the correlation function is not satisfied by the original
events and data elements. The system allows for the identification of a
schema for creating state machines that correlate events and/or data. An
instance of a particular state machine is created and transitions for the
particular state machine are defined by subscribing to one or more
events. An update consumer is applied to the particular state machine to
update the state of the particular state machine.