Business processes are an important step in building your pattern catalog, but like the Business Object pattern, there is an additional pattern into which the business process fits. The business process is a necessary building block to the Asynchronous Business Process pattern, yet both have enough details that they can stand on their own. Other patterns help the Business Process pattern fulfill the tasks it is required to complete:
Business Object/Business Object Collection: These constructs embody many of the business activities called within the context of a business process. Further, in some models, the business object and business object collections may house the business processes themselves . I discourage the blending of the business object and business object collection with the business process and instead recommend keeping the business process as its own first-class construct.
Asynchronous Business Process: This is an evolution of the Business Process pattern. Business processes tend to be long-lived, and executing them synchronously frustrates clients . On the other hand, running a business process entirely asynchronously would be just as frustrating because there would be no accurate feedback on the submission of the order and a returned order identifier. The key is in fulfilling the expectations of the user while also allowing the bulk of the business process to run asynchronously.
Service Factory: As mentioned in the chapter, individual business activities are often first-class business processes themselves. Some of these nested business processes may not exist within your own business. The Service Factory pattern is a pattern similar to a class factory where the most applicable business process is located at runtime rather than statically bound at design time.