{"id":5043,"date":"2021-08-23T07:44:26","date_gmt":"2021-08-23T07:44:26","guid":{"rendered":"https:\/\/blog.verbat.com\/?p=2752"},"modified":"2024-05-27T10:19:30","modified_gmt":"2024-05-27T10:19:30","slug":"understanding-asynchronous-messaging-for-microservices","status":"publish","type":"post","link":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/","title":{"rendered":"Understanding Asynchronous Messaging For Microservices"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One of the possible consequences of adopting the microservice architecture is that the communication between components takes place over the network. For all that, the microservice environment is a distributed system. To fulfill the promises of microservices, like being able to scale, operate, and evolve each service, the communication must transpire in a loosely coupled and reliable manner.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">A general way to loosely couple services is to\nunmask an API using the REST architecture. REST APIs are founded on the\narchitecture of the web and enable loose coupling between communicating\nparties. It is an excellent way to decouple interfaces from concrete\nimplementations, and to inform clients about the next line of action, by using\nlinks and link relations.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Also Read:  <\/strong><a href=\"https:\/\/www.verbat.com\/blog\/everything-you-want-know-about-microservice-architecture\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Everything You Want Know About Microservice Architecture <\/strong><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although REST APIs are more common and helpful in microservice design, REST APIs are generally designed with synchronous communications, where a response is needed. A request from an end-user client can spark off a complex communication channel within your service landscape, which can successfully incur coupling between the services at runtime. And for this reason, we have mitigation patterns like a circuit breakers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Asynchronous Messaging<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If losing-coupling is crucial, especially in a\nsystem that needs high resilience and has variability in terms of scale, an\nalternative is asynchronous messaging.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Asynchronous messaging is a key approach for\nintegrating autonomous systems or assembling a set of loosely coupled systems\nthat can operate, scale and evolve with autonomy and flexibility.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Single-Receiver Message-Based\nCommunication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Message-based asynchronous communication with a\nsingle receiver implies an end-to-end communication that renders a message to\nexactly one of the users that\u2019s reading from the channel, and the message\nprocessing is done just once.<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Also Read: <a href=\"https:\/\/www.verbat.com\/blog\/x-cart-vs-magento-selecting-the-best-e-commerce-platform-for-your-business\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>X-Cart vs Magento:  Selecting the Best E-Commerce Platform for Your Business <\/strong><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Still, there are special cases. For example, in a\ncloud system that attempts to automatically recover from failures, the same\nmessage could resend multiple times. Owing to network or other failures, the\nclient has to be able to repeatedly send messages, and the server has to\nimplement an action to be unchanged to process a specific message just\nonce.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Single-receiver message-based communication is perfectly suited for sending asynchronous commands from one microservice to another. But one limitation is that when you begin sending message-based communication (either with commands or events), you should steer clear of combining message-based communication with synchronous HTTP communication.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\" alt=\"\" class=\"wp-image-2753\"\/><figcaption class=\"wp-element-caption\"><strong>Picture Courtesy: Microsoft<\/strong><\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Multiple- Receiver\nMessage-Based Communication&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As a more flexible strategy, you might also try\nto resort to a publish\/subscribe mechanism so that messages from the sender\nwill be accessible to another subscriber microservice or external applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thus, it favors an open\/ closed principle in the sending service. While using a publish\/subscribe communication, you might want to use an event bus interface to publish events to any subscriber.&nbsp; &nbsp; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Advantages of Asynchronous\nMessaging<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us examine a few advantages of asynchronous\ncommunication:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In a      system that comprises asynchronous messaging, the server does not need to be functional all the time.<\/li>\n\n\n\n<li>Messages that are pushed into the message queue can be batch processed in the future.&nbsp;<\/li>\n\n\n\n<li>In place of a single instance of the tracing server processing the message queue,      you could induce multiple instances to reduce the load.<\/li>\n\n\n\n<li>If you are using the modern version of a messaging queue, there is a possibility to get to use a replay feature. This is helpful in re-processing a message that gave an error message initially.<\/li>\n\n\n\n<li>Asynchronous communication is best suited for systems that need eventual consistency.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Also Read:  <a href=\"https:\/\/www.verbat.com\/blog\/food-supply-ecosystem-using-blockchain\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pursuing Traceability in the Food Supply Ecosystem Using Blockchain <\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Drawbacks of Asynchronous\nCommunication<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Asynchronous communication can\u2019t be applied if\nthere is a limitation on the response time of a specific request i.e. if the\nprocessing has to be in real-time.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Implementation<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There\nare many possibilities for asynchronous integration. Some popular ones are <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka,\nRabbitMQ, Google Pub\/Sub, Amazon Services, ActiveMQ, Azure Services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Let us look into Kafka for instance as a messaging system.<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-2.png\" alt=\"\" class=\"wp-image-2754\"\/><figcaption class=\"wp-element-caption\"><strong>Fig: Kafka Architecture<\/strong><\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-3.png\" alt=\"\" class=\"wp-image-2755\"\/><figcaption class=\"wp-element-caption\"><strong>Fig: Kafka Broker with Topics and Partition<\/strong> <\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Kafka is\na distributed, duplicated commit log. There is no concept of queue with Kafka,\ngiven that it is majorly used as a messaging system.&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Queues\nhave been tantamount to messaging system for quite some time. Let us analyze\nthe terms distributed, duplicated commit log:&nbsp;&nbsp;&nbsp;\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka\nbeing deployed as a cluster of nodes, for both fault tolerance and scale, hence\n\u201cdistributed\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cDuplicated\u201d\nbecause messages are duplicated across multiple nodes (servers). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Commit\nLog because messages are saved in segmented, append only logs which are called\nTopics. This idea is the most revered aspect of Kafka.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka\nuses a pull model and which is justifiable because of its segmented nature.\nConsumers request messages in batches from a specified offset. Kafka permits\nlong-pooling, which averts tight loops when there is no message past the\noffset. Also, the message order is provided in a partitions with no contending\nconsumers. This enables users to take advantage of the message batching for\neffective delivery and higher throughput. <\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>Also Read:  <a href=\"https:\/\/www.verbat.com\/blog\/blockchain-in-financial-services\/\" target=\"_blank\" rel=\"noreferrer noopener\">Blockchain in Financial Services <\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kafka\u2019s model is a dumb broker\/ smart consumer model which does\nnot try to track which messages are read by which consumers. The messages are\nretained only for a set time period.<strong><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conclusion<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the above article, we discussed asynchronous\nmessaging and its various advantages and disadvantages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It has seen rising popularity within middleware\nsystems but also with edge client systems. In due course, users have invented\nprotocols and standards to perform asynchronous messaging such that different\nsystems can be integrated. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, many vendors now offer integration <a href=\"https:\/\/www.verbat.com\/software-development\">software <\/a>with plug-and-pay and configuration-driven approaches to carry out asynchronous messaging. For more information&nbsp;<a aria-label=\"contact us. (opens in a new tab)\" href=\"https:\/\/www.verbat.com\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>contact us.<\/strong><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.verbat.com\/search-engine-optimization\/search-engine-optimization-dubai\">SEO Consultant Dubai&nbsp;<\/a>|&nbsp;<a href=\"https:\/\/www.verbat.com\/web-hosting\">Web Hosting Dubai<\/a>&nbsp;|&nbsp;<a href=\"https:\/\/www.verbat.com\/technologies\/mobile-app-development\">mobile application development companies in uae<\/a> | <a href=\"https:\/\/www.verbat.com\/\">it companies in uae<\/a><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the possible consequences of adopting the microservice architecture is that the communication between components takes place over the network. For all that, the microservice environment is a distributed system. To fulfill the promises of microservices, like being able to scale, operate, and evolve each service, the communication must transpire in a loosely coupled [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5043","post","type-post","status-publish","format-standard","hentry","category-others"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Asynchronous Messaging For Microservices - Verbat<\/title>\n<meta name=\"description\" content=\"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.\" \/>\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.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Asynchronous Messaging For Microservices - Verbat\" \/>\n<meta property=\"og:description\" content=\"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\" \/>\n<meta property=\"og:site_name\" content=\"Software Development Company Dubai UAE - Verbat Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/verbatltd\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-23T07:44:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-27T10:19:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@verbatltd\" \/>\n<meta name=\"twitter:site\" content=\"@verbatltd\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Understanding Asynchronous Messaging For Microservices\",\"datePublished\":\"2021-08-23T07:44:26+00:00\",\"dateModified\":\"2024-05-27T10:19:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\"},\"wordCount\":984,\"publisher\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\",\"articleSection\":[\"Others\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\",\"url\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\",\"name\":\"Asynchronous Messaging For Microservices - Verbat\",\"isPartOf\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\",\"datePublished\":\"2021-08-23T07:44:26+00:00\",\"dateModified\":\"2024-05-27T10:19:30+00:00\",\"description\":\"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage\",\"url\":\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\",\"contentUrl\":\"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.verbat.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Asynchronous Messaging For Microservices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#website\",\"url\":\"https:\/\/www.verbat.com\/blog\/\",\"name\":\"Verbat Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.verbat.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#organization\",\"name\":\"Verbat Technologies\",\"url\":\"https:\/\/www.verbat.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg\",\"contentUrl\":\"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg\",\"width\":200,\"height\":200,\"caption\":\"Verbat Technologies\"},\"image\":{\"@id\":\"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/verbatltd\",\"https:\/\/x.com\/verbatltd\",\"https:\/\/www.linkedin.com\/company\/verbatltd\"]},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Asynchronous Messaging For Microservices - Verbat","description":"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.","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.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/","og_locale":"en_US","og_type":"article","og_title":"Asynchronous Messaging For Microservices - Verbat","og_description":"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.","og_url":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/","og_site_name":"Software Development Company Dubai UAE - Verbat Technologies","article_publisher":"https:\/\/www.facebook.com\/verbatltd","article_published_time":"2021-08-23T07:44:26+00:00","article_modified_time":"2024-05-27T10:19:30+00:00","og_image":[{"url":"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png"}],"twitter_card":"summary_large_image","twitter_creator":"@verbatltd","twitter_site":"@verbatltd","twitter_misc":{"Written by":"","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#article","isPartOf":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/"},"author":{"name":"","@id":""},"headline":"Understanding Asynchronous Messaging For Microservices","datePublished":"2021-08-23T07:44:26+00:00","dateModified":"2024-05-27T10:19:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/"},"wordCount":984,"publisher":{"@id":"https:\/\/www.verbat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png","articleSection":["Others"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/","url":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/","name":"Asynchronous Messaging For Microservices - Verbat","isPartOf":{"@id":"https:\/\/www.verbat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png","datePublished":"2021-08-23T07:44:26+00:00","dateModified":"2024-05-27T10:19:30+00:00","description":"Delve into the intricacies of asynchronous messaging for microservices, optimizing scalability, reliability.","breadcrumb":{"@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#primaryimage","url":"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png","contentUrl":"https:\/\/blog.verbat.com\/wp-content\/uploads\/2021\/08\/pic-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.verbat.com\/blog\/understanding-asynchronous-messaging-for-microservices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.verbat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Asynchronous Messaging For Microservices"}]},{"@type":"WebSite","@id":"https:\/\/www.verbat.com\/blog\/#website","url":"https:\/\/www.verbat.com\/blog\/","name":"Verbat Technologies","description":"","publisher":{"@id":"https:\/\/www.verbat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.verbat.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.verbat.com\/blog\/#organization","name":"Verbat Technologies","url":"https:\/\/www.verbat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg","contentUrl":"https:\/\/www.verbat.com\/blog\/wp-content\/uploads\/2024\/04\/verbatltd_logo.jpg","width":200,"height":200,"caption":"Verbat Technologies"},"image":{"@id":"https:\/\/www.verbat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/verbatltd","https:\/\/x.com\/verbatltd","https:\/\/www.linkedin.com\/company\/verbatltd"]},{"@type":"Person","@id":""}]}},"_links":{"self":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/5043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/comments?post=5043"}],"version-history":[{"count":2,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/5043\/revisions"}],"predecessor-version":[{"id":6171,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/posts\/5043\/revisions\/6171"}],"wp:attachment":[{"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/media?parent=5043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/categories?post=5043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.verbat.com\/blog\/wp-json\/wp\/v2\/tags?post=5043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}