SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Sponsored & Brought to you by
The top integration features you probably didn’t
know existed in Service Bus
Dan Rosanova
https://twitter.com/DanRosanova
https://www.linkedin.com/in/danrosanova
Some history
• Original Service Bus engineering team was (and continues to have
been) from BizTalk in the past – the messaging side of BizTalk in
particular.
• Same team also maintains MSMQ – still
I knew messaging
I thought I knew Service Bus
Duplicate Detection
• What: Ignore messages that are sent more than once in a specified
time window
• When
• Upstream applications are unpredictable and noisy
• They may send duplicate messages
• Why
• Ever seen a website that says 'don't click buy again to avoid multiple charges'
• How: Use a value as MessageId to control this behavior and set the
window you need on the queue or topic
• Impact: Idempotent processing -> yes you probably need this
Scheduled Messages
• What: place a message in a queue or topic that doesn’t “appear” until
a specified future time
• When
• Sender wants to send something now, but doesn't want an action to take
place on it until later
• Take actions to complete or rollback work at a specified point
• Why: Keep your services as simple as possible – we already have it
• How: Set the ScheduledEnqueueTimeUtc on BrokeredMessage
• Impact: Rich temporal control of long running processes
Defer
• What: Mark a message to be skipped so it doesn’t keep getting read
off a queue or topic
• When: Whenever you can’t process something immediately, but must
process it later
• Why: Not everything will arrive in the order in which you expect it – if
you need a resequencing aggregator this is a good option
• How: Call BrokeredMessage.Defer BUT SAVE the SequenceNumber
• Impact: Provide logical ordered processing even if your senders are
chaotic
If you lose the sequence number of a
message there is no way to read it
WARNING
Auto Forward
• What: Forward all messages to another entity
• When: If current senders have an address you don’t want to use
anymore – or if you want more fine grained security
• Why: Change is hard – getting others to change can be impossible!
• How: Set the ForwardTo property on the Queue or the Subscription
(for a topic)
• Impact: Free yourself from decisions you or someone else made last
year
Actions on Subscriptions
• What: Change message properties when a subscription receives a
message
• When: You want to create rich topologies
• Why:
• Actions allow you to set user properties that can change routing
• This allows expression of any sort of decision tree – almost like BRE
• How: Use the Action property of the RuleDescription
• Impact: Chaining rules with actions allows for creating very rich
topologies that can express almost any logic But maybe shouldn’t
Dead lettering with Auto forward
• What: Send dead letter messages to another entity (queue / topic)
• When: you want more control over where non-deliverable messages
go
• Why: Not all messages fail for the same reason – forwarding to
another entity enables rich failure routing
• How: Use the ForwardDeadLetteredMessagesTo property on Queue
or Subscription
Auto-delete on idle
• What: Delete entities that do not have a Send operation called for a
certain amount of time
• When: You need to create entities for specific flows or scenarios that
are transient in nature and don’t want to clean them up
• Why: No one ever wants to clean up their room – we’ll do it for you
• How: Specify a timespan for AutoDeleteOnIdle on the queue or topic
• Impact: A clean namespace is a happy namespace
OnMessage (.NET Client Only)
• What: A messaging pump that makes dispatching and processing
messages far easier.
• When: Any time you’re reading Service Bus in .NET
• Why: This is our modern approach – we’re making our client easier to
use - think of EventProcessorHost
• How: Set a lambda or function on OnMessage of the QueueClient or
SubscriptionClient
• Impact: Do more with less.

Weitere ähnliche Inhalte

Was ist angesagt?

DesignPatternsForScalability
DesignPatternsForScalabilityDesignPatternsForScalability
DesignPatternsForScalability
Chris Ballance
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
 

Was ist angesagt? (20)

JavaScript & CSS Development Workflow
JavaScript & CSS Development WorkflowJavaScript & CSS Development Workflow
JavaScript & CSS Development Workflow
 
WordPress Affiliate Toolkit - Affiliate Summit East 2014
WordPress Affiliate Toolkit - Affiliate Summit East 2014WordPress Affiliate Toolkit - Affiliate Summit East 2014
WordPress Affiliate Toolkit - Affiliate Summit East 2014
 
Navigate around the edge with PowerShell
Navigate around the edge with PowerShellNavigate around the edge with PowerShell
Navigate around the edge with PowerShell
 
DesignPatternsForScalability
DesignPatternsForScalabilityDesignPatternsForScalability
DesignPatternsForScalability
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approach
 
Rigadevdays - Communication in a microservice architecture
Rigadevdays  - Communication in a microservice architectureRigadevdays  - Communication in a microservice architecture
Rigadevdays - Communication in a microservice architecture
 
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization systemA practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
 
Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!
 
Keeping in Touch -- Collaborative Technologies
Keeping in Touch -- Collaborative TechnologiesKeeping in Touch -- Collaborative Technologies
Keeping in Touch -- Collaborative Technologies
 
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
Saigon Ruby Meetup 06/10/2015 - Changeful GemSaigon Ruby Meetup 06/10/2015 - Changeful Gem
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
 
PageSpeed Optimization
PageSpeed OptimizationPageSpeed Optimization
PageSpeed Optimization
 
Using REST with VSTS and TFS
Using REST with VSTS and TFSUsing REST with VSTS and TFS
Using REST with VSTS and TFS
 
What’s right & wrong with WCF-WebHTTP Adapter?
What’s right & wrong with WCF-WebHTTP Adapter?What’s right & wrong with WCF-WebHTTP Adapter?
What’s right & wrong with WCF-WebHTTP Adapter?
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
 
BizTalk ALM
BizTalk ALMBizTalk ALM
BizTalk ALM
 
Backendless 3.0 Overview
Backendless 3.0 OverviewBackendless 3.0 Overview
Backendless 3.0 Overview
 
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
 
Open-source web CMS: the right question? [+ audio]
Open-source web CMS: the right question? [+ audio]Open-source web CMS: the right question? [+ audio]
Open-source web CMS: the right question? [+ audio]
 

Andere mochten auch

Andere mochten auch (20)

Overview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integrationOverview of azure microservices and the impact on integration
Overview of azure microservices and the impact on integration
 
Azure Service Bus Overview
Azure Service Bus OverviewAzure Service Bus Overview
Azure Service Bus Overview
 
Serverless tools for integrating systems
Serverless tools for integrating systemsServerless tools for integrating systems
Serverless tools for integrating systems
 
Hybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloudHybrid connectivity options with the microsoft cloud
Hybrid connectivity options with the microsoft cloud
 
Microservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration finalMicroservices and the Cloud based future of integration final
Microservices and the Cloud based future of integration final
 
Minecraft Integration Demo Deep Dive
Minecraft Integration Demo Deep DiveMinecraft Integration Demo Deep Dive
Minecraft Integration Demo Deep Dive
 
Combining biz talk server + api apps
Combining biz talk server + api appsCombining biz talk server + api apps
Combining biz talk server + api apps
 
The ART of Modern Azure Deployments
The ART of Modern Azure DeploymentsThe ART of Modern Azure Deployments
The ART of Modern Azure Deployments
 
Biz talk summit 2015 – Warm up – Azure Event Hubs
Biz talk summit 2015 – Warm up – Azure Event HubsBiz talk summit 2015 – Warm up – Azure Event Hubs
Biz talk summit 2015 – Warm up – Azure Event Hubs
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic Apps
 
Azure Web Jobs
Azure Web JobsAzure Web Jobs
Azure Web Jobs
 
What to look for in an integration platform
What to look for in an integration platformWhat to look for in an integration platform
What to look for in an integration platform
 
API Management and Hybrid Integration
API Management and Hybrid IntegrationAPI Management and Hybrid Integration
API Management and Hybrid Integration
 
Azure API Apps
Azure API AppsAzure API Apps
Azure API Apps
 
Logic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIsLogic apps and PowerApps - Integrate across your APIs
Logic apps and PowerApps - Integrate across your APIs
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
Hybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and AzureHybrid Integration using BizTalk and Azure
Hybrid Integration using BizTalk and Azure
 
Service Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayService Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications today
 

Ähnlich wie The top integration features you probably didn’t know existed in Service Bus

A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
confluent
 
High scale flavour
High scale flavourHigh scale flavour
High scale flavour
Tomas Doran
 

Ähnlich wie The top integration features you probably didn’t know existed in Service Bus (20)

Best Features of Azure Service Bus
Best Features of Azure Service BusBest Features of Azure Service Bus
Best Features of Azure Service Bus
 
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
 
SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016SmartCloud Administration Best Practices MWLUG 2016
SmartCloud Administration Best Practices MWLUG 2016
 
Scaling for Success: Lessons from handling peak loads on Azure with NServiceBus
Scaling for Success: Lessons from handling peak loads on Azure with NServiceBusScaling for Success: Lessons from handling peak loads on Azure with NServiceBus
Scaling for Success: Lessons from handling peak loads on Azure with NServiceBus
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming Architectures
 
JavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservicesJavaOne: Efficiently building and deploying microservices
JavaOne: Efficiently building and deploying microservices
 
Akka Actors
Akka ActorsAkka Actors
Akka Actors
 
InfoQ QCon San Francisco 2009
InfoQ QCon San Francisco 2009InfoQ QCon San Francisco 2009
InfoQ QCon San Francisco 2009
 
Linkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slidesLinkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slides
 
Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup
 
designing distributed scalable and reliable systems
designing distributed scalable and reliable systemsdesigning distributed scalable and reliable systems
designing distributed scalable and reliable systems
 
High scale flavour
High scale flavourHigh scale flavour
High scale flavour
 
Scheduling Thread
Scheduling  ThreadScheduling  Thread
Scheduling Thread
 
SOA with PHP and Symfony
SOA with PHP and SymfonySOA with PHP and Symfony
SOA with PHP and Symfony
 
Roman Rehak: 24/7 Database Administration + Database Mail Unleashed
Roman Rehak: 24/7 Database Administration + Database Mail UnleashedRoman Rehak: 24/7 Database Administration + Database Mail Unleashed
Roman Rehak: 24/7 Database Administration + Database Mail Unleashed
 
Introduction to Messaging 3.7
Introduction to Messaging 3.7Introduction to Messaging 3.7
Introduction to Messaging 3.7
 
NServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architectureNServiceBus - introduction to a message based distributed architecture
NServiceBus - introduction to a message based distributed architecture
 
Face Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesFace Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On Premises
 
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...
 
Making personas work
Making personas workMaking personas work
Making personas work
 

Mehr von BizTalk360

Mehr von BizTalk360 (20)

Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit Kappa
 
Optimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit KappaOptimise Business Activity Tracking – Insights from Smurfit Kappa
Optimise Business Activity Tracking – Insights from Smurfit Kappa
 
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
What's inside "migrating to biz talk server 2020" Book (BizTalk360 Webinar)
 
Integration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development ExperiencesIntegration Monday - Logic Apps: Development Experiences
Integration Monday - Logic Apps: Development Experiences
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
 
No-Slides
No-SlidesNo-Slides
No-Slides
 
System Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration MondaySystem Integration using Reactive Programming | Integration Monday
System Integration using Reactive Programming | Integration Monday
 
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBuilding workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
 
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
Serverless Minimalism: How to architect your apps to save 98% on your Azure b...
 
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration MondayMigrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
Migrating BizTalk Solutions to Azure: Mapping Messages | Integration Monday
 
Integration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-TerraformIntegration-Monday-Infrastructure-As-Code-With-Terraform
Integration-Monday-Infrastructure-As-Code-With-Terraform
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsIntegration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
 
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-FunctionsIntegration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
Integration-Monday-Serverless-Slackbots-with-Azure-Durable-Functions
 
Integration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-KubernetesIntegration-Monday-Building-Stateful-Workloads-Kubernetes
Integration-Monday-Building-Stateful-Workloads-Kubernetes
 
Integration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-TricksIntegration-Monday-Logic-Apps-Tips-Tricks
Integration-Monday-Logic-Apps-Tips-Tricks
 
Integration-Monday-Terraform-Serverless
Integration-Monday-Terraform-ServerlessIntegration-Monday-Terraform-Serverless
Integration-Monday-Terraform-Serverless
 
Integration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-PlatformIntegration-Monday-Microsoft-Power-Platform
Integration-Monday-Microsoft-Power-Platform
 
One name unify them all
One name unify them allOne name unify them all
One name unify them all
 
Securely Publishing Azure Services
Securely Publishing Azure ServicesSecurely Publishing Azure Services
Securely Publishing Azure Services
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

The top integration features you probably didn’t know existed in Service Bus

  • 1. Sponsored & Brought to you by The top integration features you probably didn’t know existed in Service Bus Dan Rosanova https://twitter.com/DanRosanova https://www.linkedin.com/in/danrosanova
  • 2. Some history • Original Service Bus engineering team was (and continues to have been) from BizTalk in the past – the messaging side of BizTalk in particular. • Same team also maintains MSMQ – still
  • 3. I knew messaging I thought I knew Service Bus
  • 4. Duplicate Detection • What: Ignore messages that are sent more than once in a specified time window • When • Upstream applications are unpredictable and noisy • They may send duplicate messages • Why • Ever seen a website that says 'don't click buy again to avoid multiple charges' • How: Use a value as MessageId to control this behavior and set the window you need on the queue or topic • Impact: Idempotent processing -> yes you probably need this
  • 5. Scheduled Messages • What: place a message in a queue or topic that doesn’t “appear” until a specified future time • When • Sender wants to send something now, but doesn't want an action to take place on it until later • Take actions to complete or rollback work at a specified point • Why: Keep your services as simple as possible – we already have it • How: Set the ScheduledEnqueueTimeUtc on BrokeredMessage • Impact: Rich temporal control of long running processes
  • 6. Defer • What: Mark a message to be skipped so it doesn’t keep getting read off a queue or topic • When: Whenever you can’t process something immediately, but must process it later • Why: Not everything will arrive in the order in which you expect it – if you need a resequencing aggregator this is a good option • How: Call BrokeredMessage.Defer BUT SAVE the SequenceNumber • Impact: Provide logical ordered processing even if your senders are chaotic
  • 7. If you lose the sequence number of a message there is no way to read it WARNING
  • 8. Auto Forward • What: Forward all messages to another entity • When: If current senders have an address you don’t want to use anymore – or if you want more fine grained security • Why: Change is hard – getting others to change can be impossible! • How: Set the ForwardTo property on the Queue or the Subscription (for a topic) • Impact: Free yourself from decisions you or someone else made last year
  • 9. Actions on Subscriptions • What: Change message properties when a subscription receives a message • When: You want to create rich topologies • Why: • Actions allow you to set user properties that can change routing • This allows expression of any sort of decision tree – almost like BRE • How: Use the Action property of the RuleDescription • Impact: Chaining rules with actions allows for creating very rich topologies that can express almost any logic But maybe shouldn’t
  • 10. Dead lettering with Auto forward • What: Send dead letter messages to another entity (queue / topic) • When: you want more control over where non-deliverable messages go • Why: Not all messages fail for the same reason – forwarding to another entity enables rich failure routing • How: Use the ForwardDeadLetteredMessagesTo property on Queue or Subscription
  • 11. Auto-delete on idle • What: Delete entities that do not have a Send operation called for a certain amount of time • When: You need to create entities for specific flows or scenarios that are transient in nature and don’t want to clean them up • Why: No one ever wants to clean up their room – we’ll do it for you • How: Specify a timespan for AutoDeleteOnIdle on the queue or topic • Impact: A clean namespace is a happy namespace
  • 12. OnMessage (.NET Client Only) • What: A messaging pump that makes dispatching and processing messages far easier. • When: Any time you’re reading Service Bus in .NET • Why: This is our modern approach – we’re making our client easier to use - think of EventProcessorHost • How: Set a lambda or function on OnMessage of the QueueClient or SubscriptionClient • Impact: Do more with less.