Managing incremental user state with persistent state machines
blog.dopt.com