Bahram Banisadr Program Manager - Microsoft Event Grid update
When should you use Event Grid?
Event Grid is a PubSub system Broadcasts events Past tense statements
Event Grid has Event Sources… Push events to topics for broadcast Don’t care about who is listening
…and Event Handlers (sinks) Aware of the publisher Responsible for reacting to events
A request response system Event Grid is NOT A request response system A log or ledger (But it can play a part in each)
Event Sources Event Handlers Event Grid Serverless Code Blob Storage Resource Groups Azure Subscriptions Custom Events (anything) Event Hubs CloudEvents Sources Service Bus IoT Hub Azure Media Service Azure Maps Event Handlers Serverless Code Functions Event Grid Workflow and Integration Service Bus Logic Apps Buffering and Competing Consumers Event Hubs Storage Queues Other Services and Applications Hybrid Connections (WebSockets) WebHooks (anything) Azure Automation
What’s new with Event Grid?
Service Bus as an Event Handler (Preview) Native Service Bus integration with the Azure Platform: Only Service Bus Queues supported initially Azure Maps Service Bus Checkout-free shopping Blob Storage Service Bus Process Checks
1 MB Events (Preview) Send full context, always Don’t perform GET after every event Events over 64 KB charged in 64 KB chunks
IoT Hub device telemetry events (Preview) [{ "id": "9af86784-8d40-fe2g-8b2a-bab65e106785", "topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", "subject": "devices/LogicAppTestDevice", "eventType": "Microsoft.Devices.DeviceTelemetry", "eventTime": "2019-01-07T20:58:30.48Z", "data": { "body": { "Weather": { "Temperature": 900 }, "Location": "USA“ "properties": { "Status": "Active“ "systemProperties": { "iothub-content-type": "application/json", "iothub-content-encoding": "utf-8", "iothub-connection-device-id": "d1", "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}", "iothub-connection-auth-generation-id": "123455432199234570", "iothub-enqueuedtime": "2019-01-07T20:58:30.48Z", "iothub-message-source": "Telemetry“ } "dataVersion": "", "metadataVersion": "1“ }]
GeoDR GA Metadata RPO: Zero minutes of topics & subscriptions lost. Metadata RTO: 60 minutes till new CRUD operations. Data RPO: Five minutes of events jeopardized.* Data RTO: 60 minutes for new traffic to flow.** <topic-endpoint>/api/health
Advanced Filters GA Filter as many layers deep as you need "filter": { "advancedFilters": [ { "operatorType": "NumberGreaterThanOrEquals", "key": "Data.Key1.Key2.Key3", "value": 5 }, { "operatorType": "StringContains", "key": "Subject", "values": ["container1", "container2"] } ] String, Numerical, and Bool operators
Event Domains GA 100,000 topics per Event Domain 100 Event Domains per Azure Subscription 50 ‘firehose’ event subscription at the Domain scope
What is an Event Domain?
Event Domains are a management construct Manage all your topics in one place Set fine-grain auth rules for each topic Publish all of your events to one endpoint
Case Study: Azure Service Notifications Azure Service Region1 Azure Resource Manager Azure Service Region2 Azure Service Region3 10.1.18
Case Study: Azure Service Notifications Storage RP Storage RP Storage Service Azure Resource Manager Service Bus RP Service Bus RP Service Bus Service IoT Hubs RP IoT Hubs RP IoT Hubs Service
With Grid: Azure Service Notifications Storage RP Storage RP Storage Service Event Grid Azure Resource Manager Service Bus RP Service Bus RP Service Bus Service IoT Hubs RP IoT Hubs RP IoT Hubs Service 10.1.18
Azure Resource Manager BYO Inbox Storage RP Storage RP Storage Service Web hook Event Grid Service Bus RP Azure Resource Manager Service Bus RP Service Bus Service Storage Queue Event Hub IoT Hubs RP IoT Hubs RP IoT Hubs Service
Event sourcing pattern Storage RP Storage RP Event Outbox Storage Service Azure Resource Manager Service Bus RP Event Hub Service Bus RP Service Bus Service Event Outbox IoT Hubs RP IoT Hubs RP Event Outbox IoT Hubs Service
What’s next for Event Grid?
What’s next for Event Grid? Remove workarounds Greater transparency CloudEvents.io
Quick demo: Azure Container Storage Blob Event Grid PowerShell Subscription Azure Container Instance PowerShell Function
Thank you!
Please stay in touch: Comment on Docs & Blogs Azure Messaging Advisors Yammer (MVPs) https://feedback.azure.com Stack Overflow tag: azure-eventgrid Askgrid at Microsoft.com