1. A method for converting tracking data into query-able data, comprising: performing an attempt to modify state data; performing a single transaction with at least one database to store both the modified state data and associated event data at the at least one database, the transaction either succeeding or failing, whereby if the transaction succeeds and the state data is successfully modified, then, as a result of the single transaction, both the state data and the event data are stored at the at least one database with the event data being stored in a serialized data stream separate from the state data, and if the transaction fails or the state data is not successfully modified, then both the state data and the event data are not stored at the at least one database; receiving the serialized stream of event data from the at least one database, the serialized stream of event data including a plurality of event items, each event item associated with one of a plurality of operations performed on one of a plurality of instances of a process; and formatting the serialized stream of event data into query-able data by applying a method to each event item to store the event item according to the corresponding instance, whereby a current state of the instance may be obtained from the query-able database and statistics on the plurality of operations may be obtained from the query-able database.