The next section is on building and maintaining pipelines. We've already covered a lot of this information in the design section. Apache Beam is an open programming platform for unifying batch and streaming. Before Apache Beam, you needed two pipelines to balance latency, throughput and fault tolerance. Cloud Dataflow is Apache Beam as a service, a fully managed auto-scaling service that runs Beam pipelines. Continuous data can arrive out of order. Simple windowing can separate related events into independent windows. Losing relationship information, time-based windowing or shuffling overcomes this limitation. Cloud Dataflow resources are deployed on-demand per job and work is constantly rebalanced across resources. Cloud Dataflow solves many stream processing issues, including changes in size, spikes, and growth over time. It can scale while remaining fault tolerant and it has a flexible programming model and methods to work with data arriving late or out-of-order. All data processing is behind or lags events simply due to latency and the delivery of the event message. Windowing is too complicated to explain here, I just want to highlight that you might need to know it so make sure you understand it. There really is no replacement for the Dataflow Windowing capability for streaming data. Windowing creates individual results for different slices of event time. Windowing divides a peak collection up into finite chunks based on event time of each message, it can be useful in many contexts, but it's required when aggregating over infinite data. Do you know the basic windowing methods including fixed time such as a daily window, sliding and overlapping windows, such as the last 24 hours and session-based windows that are triggered to capture bursts of activity. Remember to study side inputs. If you understand side inputs, you'll necessarily understand many dependent concepts that are part of Cloud Dataflow.