Are AWS S3 Event Notifications guaranteed to be delivered?

From the Documentation Important Amazon S3 event notifications typically deliver events in seconds but can sometimes take a minute or longer. On very rare occasions, events might be lost.

We are seeing lost events right now. A lot in volume but low by percentage.


Update 2020

The events are now at least once: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

Relevant quote from that page:

Amazon S3 event notifications are designed to be delivered at least once. Typically, event notifications are delivered in seconds but can sometimes take a minute or longer.

Original answer

In principle yes. However, Lambda has a 99.9% SLA and S3 has a 99.9% uptime SLA as well. So in theory some events could be missed, but only when they have a service disruption. When the Lambda function fails, it automatically retries up to three times.

I use S3 as a 'queue' for Lambda and have never missed a message (out of millions and millions).

There's not much you can do to deal with this I think. Part of using 'serverless' infrastructure means that you also lose some control (however, I think that AWS can do a better job than just myself and a few dedicated servers).