Github user bowenli86 commented on a diff in the pull request:
https://github.com/apache/flink/pull/4833#discussion_r146134163
--- Diff: docs/dev/stream/operators/windows.md ---
@@ -427,6 +427,93 @@ input
The above example sums up the second fields of the tuples for all elements
in a window.
+### AggregateFunction
+
+An `AggregateFunction` is a generalized version of a `ReduceFunction` that
has three types: an
+input type (`IN`), accumulator type (`ACC`), and an output type (`OUT`).
The input type is the type
+of elements in the input stream and the `AggregateFunction` has a method
for adding one input
+element to an accumulator. The interface also has methods for creating an
initial accumulator,
+for merging two accumulators into one accumulator and for extracting an
output (of type `OUT`) from
+an accumulator. We will see how this works in the example below.
+
+Same as with `ReduceFunction`, Flink will incrementally aggregate input
elements of a window as they
+arrive.
+
+A `AggregateFunction` can be defined and used like this:
--- End diff --
An
---