Amazon's latest addition to its web services suite, the Amazon SWF API, is meant to connect many of its other services together. At first a bit generic to wrap your brain around. SWF, or Simple Workflow, can be connected to any services, including self-hosted systems and other cloud providers. Amazon has created a framework to step through complex business and development processes.
The announcement post mentions that an order placed on Amazon.com has at least 40 different steps. It also shows an example of a less complex process, uploading a photo, that still takes 13 steps:
1. Accept uploaded file.
2. Store file in Amazon S3
3. Validate file format and size.
4. Use Amazon Mechanical Turk to classify the image.
5. If the image is unacceptable, send an error message using Amazon SES and terminate the workflow.
6. If the image is acceptable, check the user's balance in the accounting system.
7. Launch an EC2 instance.
8. Wait for the EC2 instance to be ready, and then configure it (keys, packages, and so forth).
9. Convert the image to PNG format and generate a series of image thumbnails.
10. Upload the PNG image and the thumbnails to Amazon S3.
11. Adjust the user's balance in the accounting system.
12. Create an entry in the appropriate database table.
13. Send a status message to the user, again using Amazon SES.
The image above shows what Amazon's post describes as a "nice, clean separation between the work to be done and the steps needed to do it."
Cloud Avenue believes SWF is a major part of Amazon's future strategy:
If anyone thinks after today’s announcement that Amazon has no clue for the future dominated by PaaS, I think they are fooling themselves. By now, it is pretty obvious how Amazon is approaching the platform game and with this announcement, they are clearly showing their cards.
Automated workflow management, across multiple environments, as a platform for innovation and value creation is a very exciting prospect. It abstracts a layer of detail in order to facilitate the expansion of a developer's ability to create value on a higher level of abstraction. There may be no higher calling, as platforms go.
It's hard to say whether developers are ready for creating heavy-handed processes. However, the interest in test-driven development over the last ten years has encouraged a similar process-minded thinking. Certainly Amazon SWF could see a lot of usage within enterprises and science, where processes are incumbent.