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).