@debsankha and I concluded that we leave the choice of data backend to the user. All we provide the aggregators is generators to the outputs of the user-defined simulation function.
Later, we can define utility functions for aggregation that have certain restrictions on user output (e.g. being an ndarray).