Being capable of responding to externally generated events provides a flexible mechanism on which to build systems that can be easily scaled and augmented. Consider how you might design a solution to create a thumbnail image based on the submission of a graphical representation. First, we need some disk storage to hold the image, then we need to process the image to generate a thumbnail, and then we need some more disk storage to keep the output.
Each stage of this activity requires a state change and response. The state change is a notification tied to the service call to indicate the state of the resource; for example, an image has been deposited, a picture has changed, or processing has completed.
In the example of Cloud Functions (introduced later in this chapter), an event triggers a new item deposit in Google Cloud Storage (GCS). The function...