State
Korwe uses a powerful state based mechanism to deploy and manage services. This centralises control. In complex environments, state control allows you to deal with all the 'illegal' transitions systematically, such as a user is signed up for a particular service, but not another, but wants to access a third service.
- Robustness: that at any time the system stays in a known, determined state, regardless of vagaries of the user, and availability of backend services
- Adaptability: you can modify the system through xml to accommodate new requirements
- Attractive and complete pages delivered: the Core allows us to assemble all the elements of a page to send to a user - Web pages can accommodate a fairly unstructured delivery via AJAX, but not mobile
- User re-entry into workflow: there is a very high chance that a process will be interrupted - if this happens, the mobile user must be able to re-enter the process where he/she left off-ì it can be tedious to work through screens on a mobile handset, let's make it as easy to complete as possible
- Security: if you know your state, there is less chance of a miscreant subverting a process by deliberately confusing it.
- Predictability: If the user does something wrong, or there is a bug in the system, the user can always move back to a safe state, and not end up with a hung application
- Scalability: If the system is architected with states, and paths between them, clearly defined, then adding extra steps or functionality is faster, easier and less prone to introducing bugs.