SlideShare uma empresa Scribd logo
1 de 71
Azure Messaging Crossroads
Sean Feldman
Azure MVP, Particular Software
Event HubsService Bus Event GridStorage Queues
Azure Messaging Services
Send a message
Service BusStorage Queues
Is Storage Queue
service dead or not?
Send an event
Service Bus Event Hubs Event Grid
With EventGrid,
is ServiceBus dead?
Azure SignalR
Somany choices, so many options…
How does this fit into the bigger picture?
Storage Queues
(a.k.a. Simple Queues)
Storage Queues are
Task Queues
• Coordinate work across compute
• VMs, App Service, Functions, etc.
• Messages contain data and senders have expectations
• Low cost
• Easy to use
• Unlimited number of queues
• Unlimited number of concurrent clients
• Maximum queue size 500TB
• Maximum message size 64KB (48KB with Base64 encoding)
• Limited features
What did get sacrificed?
• No headers/metadata
• No pub/sub
• No scheduling
• No dead-lettering
• No transactional guarantees
• Cannot peek more than 32 messages
• 7 days retention period
• Infinite (almost) lately, but careful
• and other compute-related features
Simple Queue in Action
• Sender sends message to queue
• Queue ACKs receipt
• Receiver connects to queue & retrieves message
• Receiver ACKs complete (or other action)
Remember
TASK QUEUES FOR WORK
ITEMS AS MESSAGES
SMALL SIZE MESSAGES
HTTP-BASED LOW COST
Service Bus
Where does Service Bus fit in?
Enterprise messaging
Front End / UX Back End / Processing
Queue/Topics/Subscriptions
Advanced
Features
• Message headers
• Duplication detections
• Auto-forwarding
• Dead-lettering
• Scheduled delivery
• Message expiration
• Message Deferral
• Auto-delete on idle
• Batching
• Transactions
• Message Sessions
• Pub/sub
• Filtering and Actions
• Claim check (.NET)
Receiving Messages
Traditional approach – pump all the time
Serverless approach – pump when needed
.NET Client
Helper
• Concurrent Message Pump
• RegisterMessageHandler()
• Full control over
• Concurrency
• Lock renewal
• Message completion
Premium Features
• Scale up (MUs)
• Geo-DR
• Availability Zones
• Virtual Network
Service Endpoints
Migrating from Standard to Premium
• No downtime
• Same connection string for Senders/Receivers as before
• Some messages need to be drained
• Up to 1000 entities
QUEUES &
TOPICS
COMPUTE BASED
FEATURES
TRANSACTIONAL RELIABLE COMPLEX
WORKFLOWS
Remember
Want more? Azure Service Bus - Deep Dive session
Tomorrow at 11AM (Prince Albert room)
Event Hubs
How Event Hubs is
different from queues
• Records a stream
• Recoding moves forward only
• You can play a stream over and over again
• Like a cassette tape it has channels
• When recording, all channels record
• But the data on each channel is different
• Event Hubs calls these channels “partitions”
Event Hubs conceptual architecture
HTTP
AMQP
Kafka
How are Event Hubs and Kafka similar?
• Both are ingesting technologies, not a queue
• Both use partitioned consumer
• Partitions are independent
• Both use a client side cursor concept
• Both can scale to very high workloads
• Conceptually they are nearly the same
• Every Kafka user is close to being an Event Hubs user
Event Hubs for Apache Kafka™
Ecosystems
• Kafka 1.0 compatible endpoint can be backed by Event Hubs
• Use existing Kafka application & tools with Event Hubs
• Only need to change the connection string
Event Hubs Scaling
• Throughput Units (TUs)
• Variable reserved capacity (paid for) –Dedicated Tier
• 1 MB/second or 1,000 events/second ingress
• 2 MB/second or 2,000 events/second egress
• Overages are throttled (Server Busy Exception)
• A feature to help with it
Auto Inflation
• With insufficient TUs senders will be throttled
• Will go up (up to a cap), but won’t scale down
Be Aware:
Up to 7 days of
retention
Event Hubs Capture
lets you go
fast and slow
• Automatically send Event Hub data into the Storage account
or Azure Data Lake
• Minimize your overhead: no code or other services to
configure
• Focus on data processing, not capturing
How Capture Works
{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}
Example:
https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro
.NET Helpers
• Safe Batching Support
• EventDataBatch.TryAdd(EventData)
• Consuming events
• EventHubClient & EventProcessorHost
Remember
THROUGHPUT OVER
FEATURES
NOT A QUEUE
REPLACEMENT
MANAGE CURSOR
Event Grid
The Traditional Events Receiving
Something happens Continuously running process
There’s a Theme…
•Pub/Sub Model
•Reactive
•Event Driven
Service
Bus
Event Grid Concepts
1. Event: what happened
2. Event source: where it took place
3. Topic: where publishers send events
4. Event Subscription: what events to handle
5. Event Handler: the app or service reacting to the event
Event Schema
64KB
1 MB
Event Filtering
• Event type / subject / topic
• Event data (data.key)
• Values (numbers, strings, Boolean, array)
• NumberLessThan
• NumberLessThanOrEquals
• NumberGreaterThan
• NumberGreaterThanOrEquals
• NumberIn – the value for data.key equals a value in the set [0, 2.08, 3.14]
• NumberNotIn – the value for data.key is not in the set [1, 11, 112, 1124]
• StringContains – the value for data.key contains “the”
• StringIn – the value for data.key equals a value in the set [“small”, “brown”, “fox”]
• StringNotIn – the value for data.key equals a value in the set [“jumped”, “over”, “the”]
• StringBeginsWith – the value for data.key begins with “lazy”
• StringEndsWith – the value for data.key ends with “dog”
• BoolEquals
Event Domains
Topics
Subscriptions
Filters
Haven’t we seen this before?
Why is Event Grid different?
• Cloud Native by design
• Serverless friendly
• Engineered for reliability and scale
• Supports CNCF Cloud Events v0.1
Cloud native
by design
• Always available (99.99% SLA)
• Near real-time event delivery (<1s e2e)
• At-least-once delivery
• Dynamic scale
• 10,000,000 events per second per region
• 100,000,000 subscriptions per region
• Platform agnostic (WebHook)
• Language agnostic (HTTP protocol)
Engineered for
scale and
reliability
• Defaults: 30 delivery attempts / 24 hours
• Retry intervals
• 10 seconds
• 30 seconds
• 1 minute
• 5 minutes
• 10 minutes
• 30 minutes
• 1 hour
• Once an hour up to 24 hours
Engineered for scale
and reliability
Dead-lettering
• Requires Storage account + container
• Dead-lettered events stored as blobs
Azure Functions
Logic Apps
Azure Automation
WebHooks
Event Hubs
Storage Queues
IoT Hub
Blob Storage
Resource Groups
Azure Subscriptions
Event Hubs
Custom Topics
Storage (GPv2)
Container Registry
Service Bus (Prem)
CloudEvent Schema v0.1
Ubiquitous
• Today there are 10+ Azure publishers
https://docs.microsoft.com/en-us/azure/event-grid/event-sources
• At some point in time most Azure services will be publishers
Serverless friendly
• Ease of setup from the Portal
• Azure CLI
• Powershell
How Event Grid composes with Queues and Streams
Messaging services can be publishers or subscribers to Event Grid
sub1
sub2
mytopic
Event Hubs
Storage queues / Service Bus
Security and Authentication
• Validation Handshake (WebHook event delivery)
• Event of type Microsoft.EventGrid.SubscriptionValidationEvent
• With validation data
• Prove
• Echo back
{validationCode: “value”}
• Send GET to validationURL
EVENT DRIVEN PUB/SUB NOT ENTERPRISE
MESSAGING
SCALE THROUGHPUT
RETRIES DEAD-LETTERING CNCF CLOUD
EVENT SUPPORT
CROSS-CLOUD
Remember
How to choose the right
Azure messaging service
Serverless
The right tools
for the job
ActiveMessagesAvailableWithNoListeners
Q&A
@sfeldman | weblogs.asp.net/sfeldman

Mais conteúdo relacionado

Mais procurados

Lessons Learned - Monitoring the Data Pipeline at Hulu
Lessons Learned - Monitoring the Data Pipeline at HuluLessons Learned - Monitoring the Data Pipeline at Hulu
Lessons Learned - Monitoring the Data Pipeline at Hulu
DataWorks Summit
 

Mais procurados (20)

Maximizing Audience Engagement in Media Delivery (MED303) | AWS re:Invent 2013
Maximizing Audience Engagement in Media Delivery (MED303) | AWS re:Invent 2013Maximizing Audience Engagement in Media Delivery (MED303) | AWS re:Invent 2013
Maximizing Audience Engagement in Media Delivery (MED303) | AWS re:Invent 2013
 
Time and ordering in streaming distributed systems
Time and ordering in streaming distributed systemsTime and ordering in streaming distributed systems
Time and ordering in streaming distributed systems
 
3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud
3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud
3/18/15 Billing&Payments Eng Meetup II - Payments Processing in the Cloud
 
6/16/16 Billing&Payments Engineering Meetup III - Throttling Engine at Netflix
6/16/16 Billing&Payments Engineering Meetup III - Throttling Engine at Netflix 6/16/16 Billing&Payments Engineering Meetup III - Throttling Engine at Netflix
6/16/16 Billing&Payments Engineering Meetup III - Throttling Engine at Netflix
 
Keystone event processing pipeline on a dockerized microservices architecture
Keystone event processing pipeline on a dockerized microservices architectureKeystone event processing pipeline on a dockerized microservices architecture
Keystone event processing pipeline on a dockerized microservices architecture
 
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin KumarSiphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
Siphon - Near Real Time Databus Using Kafka, Eric Boyd, Nitin Kumar
 
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
The Problem is Data: Gwen Shapira, Confluent, Serverless NYC 2018
 
Kafka Summit NYC 2017 - The Real-time Event Driven Bank: A Kafka Story
Kafka Summit NYC 2017 - The Real-time Event Driven Bank: A Kafka Story Kafka Summit NYC 2017 - The Real-time Event Driven Bank: A Kafka Story
Kafka Summit NYC 2017 - The Real-time Event Driven Bank: A Kafka Story
 
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/SecNetflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
Netflix Keystone - How Netflix Handles Data Streams up to 11M Events/Sec
 
Serverless Reality
Serverless RealityServerless Reality
Serverless Reality
 
Easily Build a Smart Pulsar Stream Processor_Simon Crosby
Easily Build a Smart Pulsar Stream Processor_Simon CrosbyEasily Build a Smart Pulsar Stream Processor_Simon Crosby
Easily Build a Smart Pulsar Stream Processor_Simon Crosby
 
Lessons Learned - Monitoring the Data Pipeline at Hulu
Lessons Learned - Monitoring the Data Pipeline at HuluLessons Learned - Monitoring the Data Pipeline at Hulu
Lessons Learned - Monitoring the Data Pipeline at Hulu
 
Skillenza Build with Serverless Challenge - Advanced Serverless Concepts
Skillenza Build with Serverless Challenge -  Advanced Serverless ConceptsSkillenza Build with Serverless Challenge -  Advanced Serverless Concepts
Skillenza Build with Serverless Challenge - Advanced Serverless Concepts
 
Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...
Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...
Apache Pulsar: Why Unified Messaging and Streaming Is the Future - Pulsar Sum...
 
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016Netflix keystone   streaming data pipeline @scale in the cloud-dbtb-2016
Netflix keystone streaming data pipeline @scale in the cloud-dbtb-2016
 
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
Building the Serverless Container Experience: Kevin McGrath, Spotinst, Server...
 
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
Hard Truths About Streaming and Eventing (Dan Rosanova, Microsoft) Kafka Summ...
 
Netflix Cloud Platform and Open Source
Netflix Cloud Platform and Open SourceNetflix Cloud Platform and Open Source
Netflix Cloud Platform and Open Source
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
 
#lspe Q1 2013 dynamically scaling netflix in the cloud
#lspe Q1 2013   dynamically scaling netflix in the cloud#lspe Q1 2013   dynamically scaling netflix in the cloud
#lspe Q1 2013 dynamically scaling netflix in the cloud
 

Semelhante a Azure Messaging Crossroads

Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
Nitin Mehta
 

Semelhante a Azure Messaging Crossroads (20)

A guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update ConferenceA guide through the Azure Messaging services - Update Conference
A guide through the Azure Messaging services - Update Conference
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
 
The server side story: Parallel and Asynchronous programming in .NET - ITPro...
The server side story:  Parallel and Asynchronous programming in .NET - ITPro...The server side story:  Parallel and Asynchronous programming in .NET - ITPro...
The server side story: Parallel and Asynchronous programming in .NET - ITPro...
 
Azure Service Bus
Azure Service BusAzure Service Bus
Azure Service Bus
 
The impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves GoelevenThe impact of cloud NSBCon NY by Yves Goeleven
The impact of cloud NSBCon NY by Yves Goeleven
 
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
Azure Event Hubs - Behind the Scenes With Kasun Indrasiri | Current 2022
 
Azure Messaging with Azure Functions
Azure Messaging with Azure FunctionsAzure Messaging with Azure Functions
Azure Messaging with Azure Functions
 
Serverless Messaging with Microsoft Azure by Steef-Jan Wiggers
Serverless Messaging with Microsoft Azure by Steef-Jan WiggersServerless Messaging with Microsoft Azure by Steef-Jan Wiggers
Serverless Messaging with Microsoft Azure by Steef-Jan Wiggers
 
The Best of re:invent 2016
The Best of re:invent 2016The Best of re:invent 2016
The Best of re:invent 2016
 
The Microsoft Cloud Partner
The Microsoft Cloud PartnerThe Microsoft Cloud Partner
The Microsoft Cloud Partner
 
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
Select Stars: A SQL DBA's Introduction to Azure Cosmos DB (SQL Saturday Orego...
 
Building Real World Application with Azure
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
 
AWS for Java Developers workshop
AWS for Java Developers workshopAWS for Java Developers workshop
AWS for Java Developers workshop
 
GECon2017_High-volume data streaming in azure_ Aliaksandr Laisha
GECon2017_High-volume data streaming in azure_ Aliaksandr LaishaGECon2017_High-volume data streaming in azure_ Aliaksandr Laisha
GECon2017_High-volume data streaming in azure_ Aliaksandr Laisha
 
Best of re:Invent
Best of re:InventBest of re:Invent
Best of re:Invent
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
Satrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWSSatrtup Bootcamp - Scale on AWS
Satrtup Bootcamp - Scale on AWS
 
Vault Digital Transformation
Vault Digital TransformationVault Digital Transformation
Vault Digital Transformation
 
Solving Office 365 Big Challenges using Cassandra + Spark
Solving Office 365 Big Challenges using Cassandra + Spark Solving Office 365 Big Challenges using Cassandra + Spark
Solving Office 365 Big Challenges using Cassandra + Spark
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Azure Messaging Crossroads

Notas do Editor

  1. And what about Azure SignalR? It can send and broadcast message as well. Does it mean it replaces Service Bus and Event Grid both? No! This is not the messaging we’re talking about in this session. Azure SignalR is intended fo rnear real-time content updates. It’s a notification service. Notifications, if lost, are not as critical as messages that would be lost. Some examples of real-time content updates: - Apps that require high frequency updates from the server. Examples are gaming, voting, auction, maps, and GPS apps. - Dashboards and monitoring apps. Examples include company dashboards and instant sales updates. - Collaborative apps. Whiteboard apps and team meeting software are examples of collaborative apps. - Apps that require notifications. Social networks, email, chat, games, travel alerts, and many other apps use notifications. Remember, these are real-time web applications. The messages are not durable, meaning they are not stored anywhere and if fail delivery are gone.
  2. With messaging market segmentation and product categorization I feel that I know what service to use when, But when facing a real-world project, sometime the clear line between those becomes somewhat blurry. So lets start looking at each service, it’s purpose, capabilities, strong and weak sides.
  3. - A reference to MSMQ (when on-premises solutions roamed the world) - Mention it's HTTP-based implementation - Tasks queues coordinate work across compute (VMs, Functions, etc.) - The messages in a queue are generally homogeneous - Low cost - Pay as you Go billing model - Easy to use - Have as many queues as you like (or connections) - Maximum queue size is insane while message size is small - mention claim check that's required to be implemented - Very few features – next slide
  4. Received message acknowledgement (ACK) is known as pop receipt
  5. Scale up - 1, 2, 4 or 8 messaging units Geo-DR - meta plane only, no data. Triggered manually, never automated. Azure Zones – 3 “copies” in the same region to ensure HA VNSE – traffic from between VNET and ASB service is kept secure from the public internet access * features in Preview
  6. Each consumer group provides a view into partitions for parallel work Up-to 20 consumer group per EventHub (Consumer Group per app) Number of Partitions directly relates to the # of concurrent reader instances within a consumer group
  7. If you thought Kafka, you were right
  8. https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-auto-inflate
  9. EventHubs is not intended to be used as a permanent data store. Retention periods greater than 24 hours are intended for scenarios in which it is convenient to replay an event stream into the same systems; for example, to train or verify a new machine learning model on existing data. If you need message retention beyond seven days, enabling Event Hubs Capture on your event hub pulls the data from your event hub into the Storage account or Azure Data Lake Service account of your choosing.
  10. Focus on data Processing, not Capturing
  11. https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-capture-overview
  12. This method checks the sizes of the batch, the EventData object and the specified limit to determine if the EventData object can be added. It does not perform other validations on the current batch and the EventData object EventProcessorHost stores offset in storage to scale out consumption
  13. Event Grid is one of the latest additions to the messaging services that has recently GA-ed. It’s an eventing backplane that enables event-driven, reactive programming based on a publish-subscribe model. 
  14. Traditionally, with queues or subscriptions, a message is sent and it needs to be RECEIVED. An application is responsible to poll for messages. This requires a continuous execution of a process that checks for new messages. But when we have applications that need to react to occasionally sent messages, we no longer need to have a 24/7 running process to check for new messages. The polling model is not viable anymore. And with a rise of serverless options, it even became more apparent that some applications need a push model to react to changes.
  15. And it all boils down to events. Let’s define what an event is.
  16. Some example would be detecting specific objects in the image; generating thumbnails; etc.
  17. And this is what’s possible today.
  18. An event is the smallest amount of information that fully describes something that happened in the system. Every event has common information like: source of the event, time the event took place, and unique identifier. Every event also has specific information that is only relevant to the specific type of event. For example, an event about a new file being created in Azure Storage has details about the file, such as the lastTimeModified value. Or, an Event Hubs event has the URL of the Capture file. Each event is limited up to 1 MB of data (in 64 KB chunks). A publisher is the user or organization that decides to send events to Event Grid. Microsoft publishes events for several Azure services. You can publish events from your own application. Organizations that host services outside of Azure can publish events through Event Grid. An event publisher (aka source) is where the event happens. Each event source is related to one or more event types. For example, Azure Storage is the event source for blob created events. IoT Hub is the event source for device created events. Your application is the event source for custom events that you define. Event sources are responsible for sending events to Event Grid. The event grid topic provides an endpoint where the source sends events. The publisher creates the event grid topic, and decides whether an event source needs one topic or more than one topic. A topic is used for a collection of related events. To respond to certain types of events, subscribers decide which topics to subscribe to. System topics are built-in topics provided by Azure services. You don't see system topics in your Azure subscription because the publisher owns the topics, but you can subscribe to them. To subscribe, you provide information about the resource you want to receive events from. As long as you have access the resource, you can subscribe to its events. Custom topics are application and third-party topics. When you create or are assigned access to a custom topic, you see that custom topic in your subscription. When designing your application, you have flexibility when deciding how many topics to create. For large solutions, create a custom topic for each category of related events. For example, consider an application that sends events related to modifying user accounts and processing orders. It's unlikely any event handler wants both categories of events. Create two custom topics and let event handlers subscribe to the one that interests them. For small solutions, you might prefer to send all events to a single topic. Event subscribers can filter for the event types they want. A subscription tells Event Grid which events on a topic you are interested in receiving. When creating the subscription, you provide an endpoint for handling the event. You can filter the events that are sent to the endpoint. You can filter by event type, or subject pattern. An event handler is the place where the event is sent. The handler takes some further action to process the event. Event Grid supports multiple handler types. You can use a supported Azure service or your own webhook as the handler. Depending on the type of handler, Event Grid follows different mechanisms to guarantee the delivery of the event. For HTTP webhook event handlers, the event is retried until the handler returns a status code of 200 – OK. For Azure Storage Queue, the events are retried until the Queue service is able to successfully process the message push into the queue. Event Grid provides security for subscribing to topics, and publishing topics. When subscribing, you must have adequate permissions on the resource or event grid topic. When publishing, you must have a SAS token or key authentication for the topic.
  19. Here’s an example of an event generated by Storage Blob when a new blob is create. Notice that there’s a topic, subject, and eventType that every event will have. topic - full resource path to the event source. This field is not writeable. Event Grid provides this value. (here: Storage Account) subject - Publisher-defined path to the event subject. (here: Blob Container) eventType - One of the registered event types for this event source. (here: blob created event) Each event is comprised of data. Data schema is defined by event publishers. Note: that events can be bundled and subscribers could receive multiple events.
  20. X
  21. How is Event Grid is different from Azure Service Bus? It’s cloud native by design. Built to address serverless issues with reactive nature of communication. Which includes built in reliability and massive scale it can handle – cross data-center
  22. It was designed for cloud scenarios, highly available with near real time delivery end-to-end It has at-least-once delivery semantics. The scale is incomparable to a service such as ASB. It was designed in a way that can support various platforms. Yes, not just Azure. And thanks to the HTTP protocol use it can be used from any platform.
  23. Event Grid adds a small randomization to all retry intervals. After one hour, event delivery is retried once an hour. By default, Event Grid expires all events that aren't delivered within 24 hours. You can customize the retry policy when creating an event subscription. You provide the maximum number of delivery attempts (default is 30) and the event time-to-live (default is 1440 minutes). [30=7 in the first hour + 23 with one-per-hour]
  24. By default, Event Grid expires all events that aren't delivered within 24 hours. You can customize the retry policy when creating an event subscription. You provide the maximum number of delivery attempts (default is 30) and the event time-to-live (default is 1440 minutes). [30=7 in the first hour + 23 with one-per-hour]
  25. CloudEvents simplifies interoperability by providing a common event schema for publishing, and consuming cloud based events. This schema allows for uniform tooling, standard ways of routing & handling events, and universal ways of deserializing the outer event schema. With a common schema, you can more easily integrate work across platforms.
  26. Azure Logic Apps, Azure Automation, Azure Functions for EventGrid Trigger. Only HTTPS is supported!
  27. Summary
  28. In the ideal world, we’d want to have a very clear instructions about what messaging service to use when
  29. So lets have a look at these services to understand better when what services make sense by understanding their key features.
  30. Don’t forget to provide Feedback