Interface describing instances that are capable of creating snapshot events for aggregates. Although snapshotting is
typically an asynchronous process, implementations may to choose to create snapshots in the calling thread.
Schedules snapshot taking for an aggregate with given aggregateIdentifier. The implementation may choose
to process this call synchronously (i.e. in the caller's thread), asynchronously, or ignore the call altogether.
aggregateType - the type of the aggregate to take the snapshot for
aggregateIdentifier - The identifier of the aggregate to take the snapshot for