Finite state machines are provided to run instances of user-defined
routines within a computing system. The finite state machines and updates
to the finite state machines are user-defined and are checked for
compliance with one or more prescribed schemas by a finite state machine
engine. Compliant finite state machine specifications are interpreted for
the plurality of states and transitions that constitute the finite state
machine. Requested instances of a finite state machine specification are
initiated by the finite state machine engine, which creates proxies to
monitor the current state of any given requested instance.