Chapter 7. The Workflow Engine
How many applications have you written that have some type of workflow for which one user enters a request and a second user approves it? Or one user enters some data and a second person verifies it? In the real world these business processes are ubiquitous. Human resources might have a vacation request process, a travel request process, and even a weekend stay-over process. Many companies have new hire processes whereby new users must be set up on the network, entered into the payroll system, have their e-mail set up, have a phone ordered, and more. Software development shops have change request processes that require all requests to be approved before being worked on. The list goes on and on. If you take a moment to consider all the business applications you've built, you'll probably find that a good number of them include workflow.
In its most basic form, a workflow is any defined business process that entails an issue moving from one state to another; and it requires that the current owner of the issue transition the issue to an end point. A simple document approval workflow is represented in Figure 7-1.