I recently delivered serverless training to some engineers, and there was confusion between two concepts that come up in discussons of serverless architectures.
On one hand, I describe AWS Lambda as event-based compute, which has significant implications for how you write the code and design the architecture in your serverless applications.
On the other hand, many serverless applications use an event-driven architecture that relies on decoupled, asynchronous processing of events across your application.
These two concepts -- event-driven architectures and event-based compute -- sound similar and are often used together in serverless applications on AWS, but they're not the same thing. Further, the patterns you use for one will not necessarily apply if you're not using the other.