{"id":95745,"date":"2022-10-21T11:27:04","date_gmt":"2022-10-21T09:27:04","guid":{"rendered":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/"},"modified":"2020-12-08T00:12:20","modified_gmt":"2020-12-08T03:12:20","slug":"explicando-todo-acerca-de-cqrs","status":"publish","type":"post","link":"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/","title":{"rendered":"Explaining all about CQRS"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#%C2%BFQue-es-CQRS\" >What is CQRS?<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#El-nivel-de-segregacion-puede-variar-en-los-sistemas-CQRS\" >The level of segregation can vary in CQRS systems:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#%C2%BFPor-que-y-cuando-usar-CQRS\" >Why and when to use CQRS?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#Un-ejemplo-muy-vivido\" >A very vivid example<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#CQRS-y-su-fuente-de-eventos\" >CQRS and its event source<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#Base-de-datos-de-informes-%E2%80%93-Denormalizer\" >Report Database - Denormalizer<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/#Outro\" >Other<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<div itemprop=\"articleBody\">\n<p>CQRS is a very good tool when it comes to programming. It is really helpful and can make many things easier for you, keep reading and learn everything about CQRS.<span id=\"more-108\"\/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%C2%BFQue-es-CQRS\"><\/span>What is CQRS?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>CQRS is an architectural pattern, where the acronym stands for Command Query Responsibility Segregation. We can talk about CQRS when data read operations are separated from data write operations and occur on a different interface.<\/p>\n<p>In most CQRS systems, read and write operations use different data models, sometimes even different data stores. This type of segregation makes it easier to scale, read and write operations, and control security, but adds additional complexity to your system.<\/p>\n<p>Node.js at Scale, is a collection of articles that focus on the needs of companies with larger Node.js installations and advanced Node.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"El-nivel-de-segregacion-puede-variar-en-los-sistemas-CQRS\"><\/span>The level of segregation can vary in CQRS systems:<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>Single data stores and separate model for reading and updating data.<\/li>\n<li>Separate data stores and separate model for reading and updating data.<\/li>\n<\/ul>\n<p>In the simplest datastore separation, we can use read-only replicas to achieve segregation.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%C2%BFPor-que-y-cuando-usar-CQRS\"><\/span>Why and when to use CQRS?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In a typical data management system, all CRUD operations (create delete read update) run on the same interface of entities in a single data store. How to create, update, query and delete table rows in a SQL database through the same model.<\/p>\n<p>CQRS really shines compared to the traditional approach (using a single model) when building complex data models to validate, and meet your business logic when data manipulation occurs. Read operations versus update and write operations can be very different or much simpler, such as accessing only a subset of your data.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Un-ejemplo-muy-vivido\"><\/span>A very vivid example<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In our Node.js monitoring tool, we use CQRS to segregate the storage and representation of the data. For example, when you view a Distributed Tracking visualization in our UI, the data behind it came in smaller chunks from our customers&#039; application agents to our Public Collector API.<\/p>\n<p>In the Collector API, we just do thin validation and send the data to a messaging queue for processing. At the other end of the queue, workers consume messages and resolve all necessary dependencies through other services. These workers are also saving the transformed data in the database.<\/p>\n<p>If a problem occurs, we return the message with an exponential fallback and a maximum limit to our messaging queue. Compared to this complex data write flow, on the rendering side of the flow, we only query a read replica database and visualize the result for our clients.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"CQRS-y-su-fuente-de-eventos\"><\/span>CQRS and its event source<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>I have seen many times that people are confusing these two concepts. Both are widely used in event-driven infrastructures as well as event-driven micro-services, but they have very different meanings.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Base-de-datos-de-informes-%E2%80%93-Denormalizer\"><\/span>Report Database - Denormalizer<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In some event-driven systems, CQRS is implemented so that the system contains one or more reporting databases.<\/p>\n<p>A reporting database is a completely different read-only storage that models and preserves data in the best format to represent it. It&#039;s okay to store it in a de-standard format to optimize it for customer needs. In some cases, the reporting database contains only derived data, even from multiple data sources.<\/p>\n<p>In a microservices architecture, we call a Denormalizer service if it listens for some events and maintains a database of reports based on them. The client is reading the reporting database from the denormalized service.<\/p>\n<p>An example might be that the user profile service emits an event <code>user.edit<\/code> with useful information <code>{id: 1, name: &#039;Mary Anne&#039;, Status: &#039;churn&#039;}<\/code>, Denormalizer service listens for it, but only stores it in its Reporting Database <code>{name: &#039;Mary Anne&#039;}<\/code>, because the client is not interested in the internal churn state of the user.<\/p>\n<p>It can be difficult to keep a reporting database in sync. Usually, we can only aim for eventual consistency.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Outro\"><\/span>Other<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>CQRS is a powerful architectural pattern to segregate read and write operations and their interfaces, but it also adds additional complexity to your system. In most cases, you shouldn&#039;t use CQRS for the whole system, only for specific parts where complexity and scalability make it necessary.<\/p>\n<p>To read more about CQRS and reporting databases, I recommend checking out the following resources:<\/p>\n<ul>\n<li>CQRS - Martin Fowler<\/li>\n<li>CQRS - MSDN<\/li>\n<li>CQRS, Task Based UI, Event Source Again! - Greg Young<\/li>\n<li>CQRS and Event Source - Code on the Beach 2014 - Greg Young<\/li>\n<li>Reports Database - Martin Fowler<\/li>\n<\/ul>\n<p>Congratulations on completing this lesson!<\/p>\n<\/p><\/div>","protected":false},"excerpt":{"rendered":"<p>CQRS is a very good tool when it comes to programming. It is really helpful and can make many things easier for you, keep reading and learn all about CQRS. That\u2026<\/p>","protected":false},"author":1,"featured_media":95746,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1374],"tags":[],"class_list":["post-95745","post","type-post","status-publish","format-standard","has-post-thumbnail","category-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Explicando todo acerca de CQRS - R Marketing Digital<\/title>\n<meta name=\"description\" content=\"CQRS es una herramienta muy buena a la hora de programar. Es realmente una ayuda y puede llegar a facilitarte muchas cosas, sigue leyendo y aprende todo\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Explicando todo acerca de CQRS\" \/>\n<meta property=\"og:description\" content=\"CQRS es una herramienta muy buena a la hora de programar. Es realmente una ayuda y puede llegar a facilitarte muchas cosas, sigue leyendo y aprende todo\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/\" \/>\n<meta property=\"og:site_name\" content=\"R Marketing Digital\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-21T09:27:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png\" \/>\n\t<meta property=\"og:image:width\" content=\"480\" \/>\n\t<meta property=\"og:image:height\" content=\"320\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"R Marketing Digital\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/\"},\"author\":{\"name\":\"R Marketing Digital\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"headline\":\"Explicando todo acerca de CQRS\",\"datePublished\":\"2022-10-21T09:27:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/\"},\"wordCount\":912,\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/0_fZVsz7SotaXJ54BG_-4862230.png\",\"articleSection\":[\"Javascript\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/\",\"name\":\"Explicando todo acerca de CQRS - R Marketing Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/0_fZVsz7SotaXJ54BG_-4862230.png\",\"datePublished\":\"2022-10-21T09:27:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\"},\"description\":\"CQRS es una herramienta muy buena a la hora de programar. Es realmente una ayuda y puede llegar a facilitarte muchas cosas, sigue leyendo y aprende todo\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/javascript\\\/explicando-todo-acerca-de-cqrs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/0_fZVsz7SotaXJ54BG_-4862230.png\",\"contentUrl\":\"https:\\\/\\\/rmarketingdigital.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/0_fZVsz7SotaXJ54BG_-4862230.png\",\"width\":480,\"height\":320,\"caption\":\"0_fzvsz7sotaxj54bg_-4862230-8888642-png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#website\",\"url\":\"https:\\\/\\\/rmarketingdigital.com\\\/\",\"name\":\"R Marketing Digital\",\"description\":\"Agencia SEO | Publicidad redes sociales | Community Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rmarketingdigital.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/rmarketingdigital.com\\\/#\\\/schema\\\/person\\\/7c0d9782b2977b840b3740f00c69a73e\",\"name\":\"R Marketing Digital\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g\",\"caption\":\"R Marketing Digital\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Explaining all about CQRS - R Marketing Digital","description":"CQRS is a very good tool when it comes to programming. It is really a help and can make many things easier for you, keep reading and learn everything","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:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/","og_locale":"en_US","og_type":"article","og_title":"Explicando todo acerca de CQRS","og_description":"CQRS es una herramienta muy buena a la hora de programar. Es realmente una ayuda y puede llegar a facilitarte muchas cosas, sigue leyendo y aprende todo","og_url":"https:\/\/rmarketingdigital.com\/en\/javascript\/explicando-todo-acerca-de-cqrs\/","og_site_name":"R Marketing Digital","article_published_time":"2022-10-21T09:27:04+00:00","og_image":[{"width":480,"height":320,"url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png","type":"image\/png"}],"author":"R Marketing Digital","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/#article","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/"},"author":{"name":"R Marketing Digital","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"headline":"Explicando todo acerca de CQRS","datePublished":"2022-10-21T09:27:04+00:00","mainEntityOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/"},"wordCount":912,"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png","articleSection":["Javascript"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/","url":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/","name":"Explaining all about CQRS - R Marketing Digital","isPartOf":{"@id":"https:\/\/rmarketingdigital.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/#primaryimage"},"image":{"@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/#primaryimage"},"thumbnailUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png","datePublished":"2022-10-21T09:27:04+00:00","author":{"@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e"},"description":"CQRS is a very good tool when it comes to programming. It is really a help and can make many things easier for you, keep reading and learn everything","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rmarketingdigital.com\/javascript\/explicando-todo-acerca-de-cqrs\/#primaryimage","url":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png","contentUrl":"https:\/\/rmarketingdigital.com\/wp-content\/uploads\/2020\/12\/0_fZVsz7SotaXJ54BG_-4862230.png","width":480,"height":320,"caption":"0_fzvsz7sotaxj54bg_-4862230-8888642-png"},{"@type":"WebSite","@id":"https:\/\/rmarketingdigital.com\/#website","url":"https:\/\/rmarketingdigital.com\/","name":"R Digital Marketing","description":"SEO Agency | Advertising social networks | Community Management","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rmarketingdigital.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/rmarketingdigital.com\/#\/schema\/person\/7c0d9782b2977b840b3740f00c69a73e","name":"R Digital Marketing","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c5599c203e0120b8ccbff4666af86f35f9b3dcad468a8bc6295313a3964a80be?s=96&d=mm&r=g","caption":"R Marketing Digital"}}]}},"_links":{"self":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/posts\/95745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/comments?post=95745"}],"version-history":[{"count":0,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/posts\/95745\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/media\/95746"}],"wp:attachment":[{"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/media?parent=95745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/categories?post=95745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rmarketingdigital.com\/en\/wp-json\/wp\/v2\/tags?post=95745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}