Both used process searches with large number of results
Serve two main purposes:
Allows for pagination of large results No need to define the "size" used in typical aggs, the composite aggregation will return an "after_key" that is used for pagination
Allow multiple aggregations to be run in one (hence the name "composite")