{"id":178,"date":"2017-12-13T11:13:40","date_gmt":"2017-12-13T11:13:40","guid":{"rendered":"https:\/\/www.cogin.com\/blog\/?p=178"},"modified":"2017-12-15T14:13:12","modified_gmt":"2017-12-15T13:13:12","slug":"topics-subscriptions-azure-service-bus-msmq-users-part-2","status":"publish","type":"post","link":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/","title":{"rendered":"Topics and subscriptions &#8211; Azure Service Bus for MSMQ users, Part 2"},"content":{"rendered":"<p>Topics and their subscriptions represent publish-subscribe (pub-sub) messaging pattern. If you\u2019re coming from MSMQ, that\u2019s a new concept. What&#8217;s the difference to plain old queue? Simplest scenario for a\u00a0queue (and arguably most common one) is &#8211; single sender and single receiver:<\/p>\n<figure id=\"attachment_187\" class=\"thumbnail wp-caption alignnone\" style=\"width: 415px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-187 size-full\" title=\"Queue with single receiver\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-single-receiver.png\" alt=\"\" width=\"405\" height=\"58\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-single-receiver.png 405w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-single-receiver-300x43.png 300w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><figcaption class=\"caption wp-caption-text\">Queue with single receiver<\/figcaption><\/figure>\n<p>Of course, we could have multiple\u00a0senders, but that doesn&#8217;t create problems unless we want\u00a0to maintain specific order of messages, so we won&#8217;t go into that. A bit more complex scenario is when there are multiple receivers:<\/p>\n<figure id=\"attachment_186\" class=\"thumbnail wp-caption alignnone\" style=\"width: 436px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-186 size-full\" title=\"Queue with multiple receivers\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-multiple-receivers.png\" alt=\"\" width=\"426\" height=\"167\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-multiple-receivers.png 426w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Queue-multiple-receivers-300x118.png 300w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><figcaption class=\"caption wp-caption-text\">Queue with multiple receivers<\/figcaption><\/figure>\n<p>If a queue has multiple receivers they\u2019ll all compete for messages. If one receiver consumes a message others won&#8217;t see it anymore. That&#8217;s ok if we use queue for work jobs, and multiple receivers help us do some parallel\u00a0processing to increase throughput.<\/p>\n<p>But how do we handle a case where we want that multiple receivers all receive same message? For example, there could be a message notifying us that order is received. We have 3 independent subsystems that should all react to that event. First one would deal with credit card processing, the second one will prepare an\u00a0invoice, and the third one will trigger someone to start packaging.<\/p>\n<p>Topics allow you to have multiple subscribers (i.e. receivers). When you send one message, <strong>all<\/strong> of them will receive a <strong>copy<\/strong> of it:<\/p>\n<figure id=\"attachment_188\" class=\"thumbnail wp-caption alignnone\" style=\"width: 585px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-188 size-full\" title=\"Topic with multiple subscriptions\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png\" alt=\"\" width=\"575\" height=\"188\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png 575w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions-300x98.png 300w\" sizes=\"auto, (max-width: 575px) 100vw, 575px\" \/><figcaption class=\"caption wp-caption-text\">Topic with multiple subscriptions<\/figcaption><\/figure>\n<p>We can think about this as if each subscriber has its own separate \u201cqueue\u201d where it keeps copies of sent messages, and processes them at its own pace. But you can&#8217;t send messages directly to that special &#8220;queue&#8221;, you have to go through topic which distributes messages to everyone.<\/p>\n<p>If you have 3 subscribers at the moment message is sent, each one of them will receive that same message. The important thing to notice is that subscription will get messages only from the moment it was created, it won&#8217;t get older messages which went through a topic earlier.<\/p>\n<h2>Subscription filtering<\/h2>\n<p>It&#8217;s\u00a0not compulsory that all subscriptions receive all messages. We can set up a filter for each subscription\u00a0which determines which messages it will receive. For instance, if our messages contain a field which describes payment method, and we have &#8220;Credit_card&#8221;, &#8220;Wire_transfer&#8221;, &#8220;PayPal&#8221; subscriptions, we can set up a\u00a0filter on each subscription so that it receives only messages for that specific payment method and ignore all the others.<\/p>\n<p>We can start <a href=\"\/mq\/\">QueueExplorer Professional<\/a> and create a topic with 3 subscriptions, each one with a\u00a0different filter. Here&#8217;s how to specify that filter:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-200\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-filter.png\" alt=\"\" width=\"759\" height=\"541\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-filter.png 759w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-filter-300x214.png 300w\" sizes=\"auto, (max-width: 759px) 100vw, 759px\" \/><\/p>\n<p>Here&#8217;s how our 3 subscriptions look like:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-197\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscriptions-with-filters.png\" alt=\"\" width=\"467\" height=\"196\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscriptions-with-filters.png 467w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscriptions-with-filters-300x126.png 300w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/p>\n<p>Now we&#8217;ll prepare 3 test messages in some queue, each one with the same custom value named &#8220;PaymentMethod&#8221;, but with different values (Wire, PayPal, CreditCard):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-196\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Messages-with-custom-properties.png\" alt=\"\" width=\"416\" height=\"203\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Messages-with-custom-properties.png 416w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Messages-with-custom-properties-300x146.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/p>\n<p>After that is prepared we can drag and drop these 3 messages to our topic:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-195\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Before-drop-to-topic.png\" alt=\"\" width=\"258\" height=\"93\" \/><\/p>\n<p>After drop is complete we&#8217;ll see that each subscription got one message:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-199\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscriptions-after-send.png\" alt=\"\" width=\"222\" height=\"96\" \/><\/p>\n<p>And if we click on subscription we&#8217;ll see that &#8220;credit_card_processor&#8221; subscription received exactly the message we expected:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-198\" src=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-with-message.png\" alt=\"\" width=\"661\" height=\"149\" srcset=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-with-message.png 661w, https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Subscription-with-message-300x68.png 300w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/p>\n<p>Since filtering allows more complex expressions, we could for example use invoice amount to put more valuable orders to a &#8220;high priority&#8221; subscription for faster processing. Since this filtering can be edited afterwards, we can reconfigure our system on the fly without changing applications!<\/p>\n<p>Besides filtering, subscription rules allow us to modify a\u00a0message as it&#8217;s transferred from a topic to subscription. We can create an \u201cAction\u201d which modifies or adds custom message properties.<\/p>\n<p>We&#8217;ll learn more about queues in <a href=\"https:\/\/www.cogin.com\/blog\/msmq\/queues-azure-service-bus-msmq-users-part-3\/\">Part 3<\/a>.<\/p>\n<p><a href=\"https:\/\/www.cogin.com\/articles\/Introduction-to-azure-service-bus-for-MSMQ-users.php\">Links to all 5 parts<\/a>\u00a0of this series.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Topics and their subscriptions represent publish-subscribe (pub-sub) messaging pattern. If you\u2019re coming from MSMQ, that\u2019s a new concept. What&#8217;s the difference to plain old queue? Simplest scenario for a\u00a0queue (and arguably most common one) is &#8211; single sender and single receiver: Of course, we could have multiple\u00a0senders, but that doesn&#8217;t create problems unless we want\u00a0to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":188,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,2],"tags":[11,5],"class_list":["post-178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-service-bus","category-msmq","tag-azure-service-bus","tag-msmq"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2\" \/>\n<meta property=\"og:description\" content=\"Topics and their subscriptions represent publish-subscribe (pub-sub) messaging pattern. If you\u2019re coming from MSMQ, that\u2019s a new concept. What&#8217;s the difference to plain old queue? Simplest scenario for a\u00a0queue (and arguably most common one) is &#8211; single sender and single receiver: Of course, we could have multiple\u00a0senders, but that doesn&#8217;t create problems unless we want\u00a0to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Cogin blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-13T11:13:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-15T13:13:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png\" \/>\n\t<meta property=\"og:image:width\" content=\"575\" \/>\n\t<meta property=\"og:image:height\" content=\"188\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dejan Grujic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dejan Grujic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/\"},\"author\":{\"name\":\"Dejan Grujic\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/#\\\/schema\\\/person\\\/e0c4fd92043868daa052d5978d69ed22\"},\"headline\":\"Topics and subscriptions &#8211; Azure Service Bus for MSMQ users, Part 2\",\"datePublished\":\"2017-12-13T11:13:40+00:00\",\"dateModified\":\"2017-12-15T13:13:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/\"},\"wordCount\":631,\"image\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/Topics-and-subscriptions.png\",\"keywords\":[\"Azure Service Bus\",\"MSMQ\"],\"articleSection\":[\"Azure Service Bus\",\"MSMQ\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/\",\"url\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/\",\"name\":\"Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/Topics-and-subscriptions.png\",\"datePublished\":\"2017-12-13T11:13:40+00:00\",\"dateModified\":\"2017-12-15T13:13:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/#\\\/schema\\\/person\\\/e0c4fd92043868daa052d5978d69ed22\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/Topics-and-subscriptions.png\",\"contentUrl\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/Topics-and-subscriptions.png\",\"width\":575,\"height\":188},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/azure-service-bus\\\/topics-subscriptions-azure-service-bus-msmq-users-part-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Topics and subscriptions &#8211; Azure Service Bus for MSMQ users, Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/\",\"name\":\"Cogin blog\",\"description\":\"Queuing tools and articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/#\\\/schema\\\/person\\\/e0c4fd92043868daa052d5978d69ed22\",\"name\":\"Dejan Grujic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g\",\"caption\":\"Dejan Grujic\"},\"sameAs\":[\"http:\\\/\\\/www.cogin.com\"],\"url\":\"https:\\\/\\\/www.cogin.com\\\/blog\\\/author\\\/gruja\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/","og_locale":"en_US","og_type":"article","og_title":"Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2","og_description":"Topics and their subscriptions represent publish-subscribe (pub-sub) messaging pattern. If you\u2019re coming from MSMQ, that\u2019s a new concept. What&#8217;s the difference to plain old queue? Simplest scenario for a\u00a0queue (and arguably most common one) is &#8211; single sender and single receiver: Of course, we could have multiple\u00a0senders, but that doesn&#8217;t create problems unless we want\u00a0to [&hellip;]","og_url":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/","og_site_name":"Cogin blog","article_published_time":"2017-12-13T11:13:40+00:00","article_modified_time":"2017-12-15T13:13:12+00:00","og_image":[{"width":575,"height":188,"url":"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png","type":"image\/png"}],"author":"Dejan Grujic","twitter_misc":{"Written by":"Dejan Grujic","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#article","isPartOf":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/"},"author":{"name":"Dejan Grujic","@id":"https:\/\/www.cogin.com\/blog\/#\/schema\/person\/e0c4fd92043868daa052d5978d69ed22"},"headline":"Topics and subscriptions &#8211; Azure Service Bus for MSMQ users, Part 2","datePublished":"2017-12-13T11:13:40+00:00","dateModified":"2017-12-15T13:13:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/"},"wordCount":631,"image":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png","keywords":["Azure Service Bus","MSMQ"],"articleSection":["Azure Service Bus","MSMQ"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/","url":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/","name":"Topics and subscriptions - Azure Service Bus for MSMQ users, Part 2","isPartOf":{"@id":"https:\/\/www.cogin.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#primaryimage"},"image":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png","datePublished":"2017-12-13T11:13:40+00:00","dateModified":"2017-12-15T13:13:12+00:00","author":{"@id":"https:\/\/www.cogin.com\/blog\/#\/schema\/person\/e0c4fd92043868daa052d5978d69ed22"},"breadcrumb":{"@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#primaryimage","url":"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png","contentUrl":"https:\/\/www.cogin.com\/blog\/wp-content\/uploads\/2017\/12\/Topics-and-subscriptions.png","width":575,"height":188},{"@type":"BreadcrumbList","@id":"https:\/\/www.cogin.com\/blog\/azure-service-bus\/topics-subscriptions-azure-service-bus-msmq-users-part-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cogin.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Topics and subscriptions &#8211; Azure Service Bus for MSMQ users, Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.cogin.com\/blog\/#website","url":"https:\/\/www.cogin.com\/blog\/","name":"Cogin blog","description":"Queuing tools and articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cogin.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.cogin.com\/blog\/#\/schema\/person\/e0c4fd92043868daa052d5978d69ed22","name":"Dejan Grujic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7edfd9071a535694242755af2736da7972b73f5d026be6563586a9b0ff7829d0?s=96&d=mm&r=g","caption":"Dejan Grujic"},"sameAs":["http:\/\/www.cogin.com"],"url":"https:\/\/www.cogin.com\/blog\/author\/gruja\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/posts\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/comments?post=178"}],"version-history":[{"count":7,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/posts\/178\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/posts\/178\/revisions\/233"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/media\/188"}],"wp:attachment":[{"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/media?parent=178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/categories?post=178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cogin.com\/blog\/wp-json\/wp\/v2\/tags?post=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}