Evented State Processing is an eventing based pattern to manage complex state
Please refer to the JS documentation