Azure gives you four main serverless pieces: Functions, Logic Apps, Event Grid, and API Management. Understanding what each one is good for makes architecting event-driven systems much clearer.
Azure Functions for compute
Azure Functions handles custom compute in the serverless model: you write the code, Azure manages the runtime, scaling, and infrastructure. The consumption plan (pay-per-execution) is optimal for intermittent, event-driven workloads. Functions are triggered by HTTP, timers, blob storage events, queue messages, Event Hub events, and more. The programming model (trigger binding + output binding) minimises boilerplate for common patterns.
Logic Apps for integration
Azure Logic Apps provides visual workflow orchestration for integration scenarios: connecting SaaS systems (Salesforce, Office 365, ServiceNow), data transformation, and approval workflows. Logic Apps uses a library of 400+ connectors with pre-built authentication and error handling. For integration scenarios that would require significant boilerplate code in Functions (OAuth flows, pagination, error handling for third-party APIs), Logic Apps is the right choice.
Event Grid for reactive patterns
Azure Event Grid provides the event routing fabric: events from Azure services (blob created, resource deleted) and custom applications are routed to Function, Logic App, and webhook subscribers. The push-based model with automatic retries and dead lettering provides reliable event delivery without polling. Event Grid is the glue between Azure services in serverless architectures.
Durable Entities for stateful actors
Azure Durable Functions Entities (introduced in 2019) implement the actor pattern in a serverless context. An entity is a stateful, addressable unit of computation: a shopping cart, an order state machine, or a rate limiter. Entities persist state between invocations without the application managing a database. Multiple entity instances run concurrently; signals to the same entity are serialised. The pattern combines the scalability of serverless with the statefulness of actors.