Patent ID: 8856291

Claim:
A computer-implemented method comprising: providing, by one or more configured computing systems of a configurable workflow service, one or more interfaces to enable multiple clients of the configurable workflow service to configure workflows to be implemented; receiving, by the one or more configured computing systems, configuration information from a first client of the multiple clients for a first defined workflow, the configuration information being received via at least one of the provided interfaces and being sent over one or more networks from a remote location of the first client, the configuration information specifying multiple workflow components of the first defined workflow and interconnections between at least some of the multiple workflow components, at least some of the multiple workflow components being selected by the client from a plurality of predefined workflow components provided by the configurable workflow service for use by the multiple clients; selecting, by the one or more configured computing systems, multiple computing nodes to use for implementing the first defined workflow, at least some of the multiple computing nodes being a subset of a plurality of computing nodes provided by the configurable workflow service for use by the multiple clients; provisioning, by the one or more configured computing systems, the selected computing nodes to each implement at least one of the multiple workflow components; and implementing the first defined workflow for the client by initiating, by the one or more configured computing systems, performance of defined activities on the selected computing nodes that correspond to the implemented workflow components, the defined activities including: one or more first activities involving obtaining input data from one or more data sources external to the configurable workflow service; one or more second activities involving producing intermediate results data by performing data manipulation operations that are based at least in part on the obtained input data; and one or more third activities involving producing output data based at least in part on the intermediate results data of the second activities and involving providing the produced output data to the first client.