Event-driven architectuur in Azure begrijpen
Azure biedt meerdere diensten voor event-driven architecturen, met Event Grid en Event Hubs als de twee belangrijkste opties. Beide werken met events, maar ze dienen fundamenteel verschillende doelen. Wie de verschillen kent, ontwerpt schaalbare integratieoplossingen. Azure Event Grid and Azure Event Hubs.
Azure Event Grid
Eventroutingdienst voor reactieve, event-driven programmering
Wat is Event Grid?
Event Grid is een volledig beheerde eventroutingdienst voor event-driven architecturen. Het werkt volgens een publish-subscribemodel: publishers sturen events naar Event Grid, dat ze vervolgens naar de subscribers routeert.
Sterke punten
- Bijna realtime levering van events
- Ingebouwde integratie met Azure-diensten
- Geavanceerde filtermogelijkheden
- Betalen per event (zeer kostenefficiënt)
- Garantie op at-least-once-levering
- Dead-lettering voor mislukte events
- Niet ontworpen voor streaming met hoge doorvoer
- Maximale eventgrootte: 1 MB
- Events kunnen niet opnieuw afgespeeld worden
- Retryvenster van 24 uur
Gebruiksscenario's voor Event Grid
- Events van Azure-resources: reageren op blob-uploads of statuswijzigingen van VM's
- Serverless triggers: Azure Functions starten op basis van events
- Applicatie-integratie: microservices reactief koppelen
- Webhookdistributie: events uitsturen naar meerdere subscribers (fan-out)
Azure Event Hubs
Platform voor big-datastreaming en dienst voor eventingestie
Wat is Event Hubs?
Event Hubs is een zeer schaalbaar datastreamingplatform dat miljoenen events per seconde kan ontvangen en verwerken. Het fungeert als buffer voor binnenkomende events tussen producers en consumers.
Sterke punten
- Miljoenen events per seconde
- Events opnieuw afspelen binnen de bewaarperiode
- Partitionering voor parallelle verwerking
- Compatibel met het Kafka-protocol
- Capture naar Azure Storage of Data Lake
- Ondersteuning voor Schema Registry
- Hogere kosten bij lage volumes
- Complexer om op te zetten
- Pull-gebaseerd consumptiemodel
- Geen ingebouwde filtering
Gebruiksscenario's voor Event Hubs
- Telemetrie-ingestie: data van IoT-apparaten op grote schaal
- Logaggregatie: gecentraliseerde logging uit meerdere bronnen
- Streamverwerking: realtime analyses met Stream Analytics
- Event sourcing: alle statuswijzigingen vastleggen als events
Rechtstreekse vergelijking
| Aspect | Event Grid | Event Hubs |
|---|---|---|
| Primair doel | Routering en distributie van events | Streaming en ingestie van events |
| Leveringsmodel | Push naar subscribers | Pull door consumers |
| Doorvoer | 10.000 events/sec per topic | Miljoenen/sec |
| Retentie | 24 uur (retry) | 1–90 dagen, instelbaar |
| Replay | Nee | Ja |
| Volgorde | Geen garantie | Binnen een partitie |
| Filtering | Geavanceerde filters op subject/eigenschappen | Alleen aan consumer-zijde |
| Kafka-compatibel | Nee | Ja |
Integratiepatronen voor Dynamics 365
Event Grid met Dynamics 365
Gebruik Dynamics 365-webhooks om wijzigingen in tabellen vast te leggen, publiceer ze naar aangepaste Event Grid-topics, verdeel ze over meerdere downstreamsystemen en filter events op tabeltype.
Event Hubs met Dynamics 365
Stream alle wijzigingen in tabellen voor analyses, bouw realtime dashboards met Stream Analytics, bewaar events voor historische analyse en gebruik event sourcing voor audittrails.
Beslissingskader
Kies Event Grid wanneer:
- U reactieve, event-driven integratie nodig hebt
- Events onmiddellijk acties moeten starten
- U events via push naar subscribers wilt leveren
- Het eventvolume gematigd is (geen miljoenen per seconde)
- U events vóór levering geavanceerd wilt filteren
Kies Event Hubs wanneer:
- U miljoenen events per seconde moet binnenhalen
- Events opnieuw afgespeeld en herverwerkt moeten kunnen worden
- De volgorde binnen partities belangrijk is
- U pipelines voor streamverwerking bouwt
- Kafka-compatibiliteit nodig is
Beide samen gebruiken
In veel architecturen vullen Event Grid en Event Hubs elkaar aan:
IoT-apparaten → Event Hubs (ingestie) → Stream Analytics (verwerking) → Event Grid (alerts) → Functions/Logic Apps (acties)
Best practices
Best practices voor Event Grid
- Gebruik filters op subject om onnodige verwerking te vermijden
- Voorzie dead-letterafhandeling voor mislukte leveringen
- Ontwerp idempotente eventhandlers (at-least-once-levering)
Best practices voor Event Hubs
- Kies partitiesleutels zorgvuldig voor een gelijkmatige verdeling
- Gebruik consumer groups voor verschillende verwerkingsbehoeften
- Schakel Capture in voor langetermijnopslag
Conclusie
Event Grid en Event Hubs zijn allebei essentiële tools voor event-driven architecturen in Azure, maar ze dienen verschillende doelen. Event Grid blinkt uit in reactieve eventroutering met levering via push, terwijl Event Hubs streaming met hoge doorvoer biedt en events opnieuw kan afspelen. Wie hun sterke punten kent, ontwerpt robuuste, schaalbare integratieoplossingen.