1. A computer-implemented method of delegating activities, the method comprising: defining an activity specification, said activity specification comprising a set of service invocations for use in a service oriented architecture having units of functionality that are expressed via a service interface that hides implementation of that functionality; transforming the activity specification into continuation passing style to form an activity, wherein the activity specifies at least one unit of computation for delegation that is larger than a single service invocation and whenever a function in the activity would normally return a result to its caller, the function instead returns a result of applying a continuation to the caller; transmitting the activity to an activity manager before executing the activity, the activity manager configured to fan-out the activity to two or more activity execution engines, wherein the fan-out is based on parameters specified in the activity; and executing the activity using the two or more activity execution engines.