I haven't done this but attempted to store events. This wasn't a event store containing events that we can replay but that was just our requirement.
Some AWS services like SNS can route events to lambdas automatically. We just have to configure a lambda as a subscriber. So when messages
are sent the lambda can use Kinesis client library to push events to a Kinesis Data Stream. The data stream is connected to a Kinesis Delivery Stream
which can store the events in many datastores. I stored it in RedShift. But RedShift as far as I know is a huge warehouse.
The kinesis client library is Java code we can use in other places too.
Thanks