- See also Azure Queues
- Use SendGrid
- Flexible API, scalable, real-time analytics & sent messages, transactional.
- C# has SDKs.
- Stipulation: Requirement that applications will handle high volume and velocity.
- Stipulate: make an agreement or to demand
- Applications in serial manner is difficult to meet the stipulation
- Solution event driven architecture.
- An event-driven architecture consists of event producers that generate a stream of events and event consumers that listen for the events.
- Decoupling: producers from consumers, consumers from each other.
- Common implementations
- Simple event processing
- Event immediately triggers an action.
- E.g. Azure Functions with Azure Service Bus trigger.
- Complex event processing
- Looks at series of events to look for patterns.
- E.g. Azure Stream Analytics or Apache Storm.
- Event stream processing
- Streaming platform as pipeline to ingest event and feed them to processors.
- Ex. Azure IoT Hub or Apache Kafka.
- Simple event processing
-
Built-in supports for incoming events from Azure services, supports also custom application & third party events via webhooks/custom topics.
-
You can filter & route events to different points, or use multicasting to send events to multiple end-points.
-
Concepts:
- Event sources sends Topics.
- Event handlers listens to Topics via Event Subscriptions
-
Subscribe to Blob Storage events to send to an endpoint
-
Supported only in Blob Storage or General Purpose v2
-
Using Azure CLI
az group create --name DemoGroup --location eastus az storage account create --name demostor --location eastus --resource-group DemoGroup --sku Standard\_LRS --kind BlobStorage --access-tier Hot az eventgrid event-subscription create --resource-id $storageid –name contosostoragesub --endpoint https://contoso.com/api/update
-
-
Security and authentication
- Three types:
- Webhook event delivery
ValidationCode
handshake (programmatic)- Application gets validation code & echoes back.
ValidationURL
handshake (manual)- Send GET request to validation URL.
- Event subscriptions
- Requires
Microsoft.EventGrid/EventSubscriptions/Write
permission on the resource.
- Requires
- Custom topic publishing
- SAS (recommended) or key authentication: include the resource, an expiration time, and a signature
- Webhook event delivery
- Three types:
- Reveals on-prem to cloud for different communications (request/response, P2P, publish/subscribe)
- Especially bidirectional via webhooks.
- It only uses outbound port from on-prem for extra security.
- Flow
- Client => Azure Relay service => Gateway node (each has its own relay/input)
- It's listening request (bidirectional)?
- Creates a new relay
- It's a request to a specific relay
- Gateway forwards to gateway node that's own the relay.
- Relay owning gateway sends rendezvous request to client.
- Rendezvous: temporary channel to exchange messages.
- It's listening request (bidirectional)?
- Client => Azure Relay service => Gateway node (each has its own relay/input)
- In Node.js
ws
package: WebSocket protocol client libraryhyco-ws
package: Extends ws where Azure Relay is built.- Use
hycows.Server
instead of ws.Server, mostly contract compatible
- Applications can authenticate to Azure Relay using Shared Access Signature (SAS) authentication
- You set permissions as authorization rules in a Relay namespace.
- Azure Notification Hub provides server to client mobile app communication through push notifications.
- From any back-end (cloud or on-prem) to any platform (iOS, Android, Windows..)
- Delivered through Platform Notification Systems (PNSs) to Platform specific infrastructures
- Provides handle to push notifications
- No common interface, different for IOS, Android, Windows.
- Multi-platform, scaled abstraction of PNSs, no handles, send notifications there and it routes further to users/interest groups.
- cases: location based coupons to segments, breaking news to all, codes for MFA.
- Flow : Client app contacts PNS to retrieve push handle, it stores the handle and uses to push notifications.
- SDKS for IOS, Xamarin, C# exists.
- Unified API for Microsoft cloud services such as 1 :
- Azure AD
- Microsoft 365
- Windows 10 (activities and devices)
- Microsoft Enterprise Mobility (Microsoft Identity Manager, Microsoft Intune, Microsoft Advanced Threat Analytics, and Microsoft Defender for Identity)
- Dynamics 365 Business Central
- See Major services and features in Microsoft Graph.
- Uses relationships such as
memberOf