Building ambitious applications is not for the faint of heart. Fortunately, Ember.js provides a simple tool to manage app complexity baked right in: StateManager.
Ember.StateManager is a finite state machine conceptually derived from statecharts (a visual formalism for complex systems). When applied, it allows you to easily define, manage and control the flow of activity throughout your app.