{"id":601851,"date":"2021-04-07T08:51:10","date_gmt":"2021-04-07T06:51:10","guid":{"rendered":"https:\/\/www.devoteam.com\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/"},"modified":"2021-04-07T08:51:10","modified_gmt":"2021-04-07T06:51:10","slug":"data-warehousing-for-microservice-architecture-in-microsoft-azure","status":"publish","type":"expert-view","link":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/","title":{"rendered":"Data Warehousing for Microservice Architecture in Microsoft Azure"},"content":{"rendered":"<p><b>Modern IT Paradigms: Decentralization vs Centralization<\/b><\/p>\n<p><span style=\"font-weight: 400\">There seems to be a conflict about the design philosophies of two of the modern IT paradigms. On the one hand there is the idea of microservice architecture. The idea that rather than being monolithic, systems should be made up of independent but connected parts. By giving these parts, or <a href=\"https:\/\/nl.devoteam.com\/microservices-architecture\/\">microservices<\/a>, their own infrastructure and databases, you increase modularity and scalability, <a href=\"https:\/\/nl.devoteam.com\/expert-view\/the-5-key-benefits-of-microservices-architecture-implementation\/\">and easy development and maintainability.\u00a0<\/a><\/span><\/p>\n<p><span style=\"font-weight: 400\">On the other hand, the modern data paradigm depends on centralization. To facilitate analytics and ad-hoc querying, data needs to be gathered from the system and stored in a central data repository, like a data warehouses or data lake.<\/span><\/p>\n<p><span style=\"font-weight: 400\">So one paradigm wants to centralize, the other to decentralize. How can these two be combined?<\/span><\/p>\n<p><b>Tension between the two paradigms: why?\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">If there is only one source database, it is straightforward to regularly read data from the transactional database and store it in the data warehouse, and run reporting on that. However, the more of these source databases exist, the more complicated this process becomes.<\/span><\/p>\n<p><span style=\"font-weight: 400\">It is not always the best approach to apply the solution for a single database to all of your microservice databases. In a monolithic database, you can safely assume that the database design will be relatively consistent. As a lot of parts of the system all depend on the same database, making large changes to the database design will have serious consequences to the system, and this will rarely happen unexpectedly.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">In a microservice architecture, the microservices are designed to be self-governing and to have all the data they need. A microservice database only has one goal: to facilitate the microservice, and therefore should be free to change at any time to better suit the needs of the microservice. Because of this, you cannot make the same assumption of stable database design as you can in a monolithic system.<\/span><\/p>\n<p><span style=\"font-weight: 400\">As the format and content of the data could change at any time, simply reading the data from your databases and writing it to your data warehouse might not always work. Instead, you need a way to remain up to date with the data of each microservice, without directly accessing the microservice databases. But how?\u00a0<\/span><\/p>\n<p><b>Solutions in Azure: Use a Messaging System<\/b><\/p>\n<p><span style=\"font-weight: 400\">The issue of data warehousing in a microservice architecture can be solved through the use of a messaging system. We can use Change Data Capture (CDC) in the microservice databases and write the data changes to a specific topic of a messaging service. A pipeline can then easily pick up this message, process it, and apply the necessary changes to a data warehouse.\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-81977 size-full\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing.png\" alt=\"\" width=\"960\" height=\"540\" \/><\/p>\n<p><span style=\"font-weight: 400\">Azure offers various options for back-end databases, which can support front-end applications in multiple different data formats, depending on an application\u2019s needs. For example, if we have a web app with document databases, it can be migrated to CosmosDB\u2019s MongoDB API.\u00a0<\/span><\/p>\n<p><b>Open Source &amp; SaaS solutions<\/b><\/p>\n<p><span style=\"font-weight: 400\">We can use Apache Kafka for the messaging component. Whenever a microservice makes a change to its CosmosDB database, it writes a message to a Kafka topic. To process these messages, we can use Spark Streaming, which integrates with Apache Kafka, and can easily be run on Azure using HDInsight or Azure Databricks. Alternatively, we can make use of Azure\u2019s managed services. For the messaging we can use Azure Event Hubs, which can be picked up and analyzed by Azure Stream Analytics. These managed services require less set-up and might offer more ease of use.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Once the data is processed by the streaming pipeline, it can be sent to the required locations. It can be stored back in CosmosDB, sent to a data warehouse, for example Azure Synapse Analytics, or streamed to PowerBI for real-time visualization.<\/span><\/p>\n<p><b>Conclusion<\/b><\/p>\n<p><span style=\"font-weight: 400\">This solution allows you to maintain an accurate, centralized and up-to-date data warehouse while also allowing all parts of your system to be self-governing.\u00a0<\/span><\/p>\n<div class=\"row-more clearfix\"><a class=\"bt-more\" href=\"https:\/\/nl.devoteam.com\/get-in-touch\/\">Contact<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Modern IT Paradigms: Decentralization vs Centralization There seems to be a conflict about the design philosophies of two of the modern IT paradigms. On the one hand there is the idea of microservice architecture. The idea that rather than being monolithic, systems should be made up of independent but connected parts. By giving these parts, [&hellip;]<\/p>\n","protected":false},"featured_media":353674,"template":"","categories":[],"tags":[2297,2733,2717],"industry":[],"class_list":["post-601851","expert-view","type-expert-view","status-publish","has-post-thumbnail","hentry","tag-data-en-nl","tag-microsoft-en-nl","tag-netherlands-en-nl"],"acf":[],"cards":"\n\t<div class=\"single-post-card\">\n\n\t\t<figure class=\"wp-block-post-featured-image\"><a href=\"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/\" target=\"_self\" ><img width=\"3872\" height=\"1188\" src=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"Data Warehousing for Microservice Architecture in Microsoft Azure\" style=\"aspect-ratio:4\/3;width:100%;object-fit:cover;\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png 3872w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-300x92.png 300w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-1024x314.png 1024w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-768x236.png 768w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-1536x471.png 1536w, https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-2048x628.png 2048w\" sizes=\"auto, (max-width: 3872px) 100vw, 3872px\" \/><\/a><\/figure>\n\n\t\t\n\t\t<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-43282307 wp-block-group-is-layout-flex\">\n\t<p style=\"font-style:normal;font-weight:700\" class=\"has-link-color wp-elements-1 wp-block-lp-post-type has-text-color has-primary-color has-small-font-size\">Expert View<\/p>\n\n\t\t\n\t\t<h3 style=\"font-style:normal;font-weight:400\" class=\"wp-block-post-title has-base-font-size\"><a href=\"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/\" target=\"_self\" >Data Warehousing for Microservice Architecture in Microsoft Azure<\/a><\/h3><\/div>\n\t\t\n\t<\/div>\n\n","yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Data Warehousing for Microservice Architecture in Microsoft Azure | Devoteam<\/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:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Warehousing for Microservice Architecture in Microsoft Azure\" \/>\n<meta property=\"og:description\" content=\"Modern IT Paradigms: Decentralization vs Centralization There seems to be a conflict about the design philosophies of two of the modern IT paradigms. On the one hand there is the idea of microservice architecture. The idea that rather than being monolithic, systems should be made up of independent but connected parts. By giving these parts, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/\" \/>\n<meta property=\"og:site_name\" content=\"Devoteam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/\",\"url\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/\",\"name\":\"Data Warehousing for Microservice Architecture in Microsoft Azure | Devoteam\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/DataWarehousing_blog-1.png\",\"datePublished\":\"2021-04-07T06:51:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/#breadcrumb\"},\"inLanguage\":\"en-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-NL\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/#primaryimage\",\"url\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/DataWarehousing_blog-1.png\",\"contentUrl\":\"https:\\\/\\\/devoteam.info\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/DataWarehousing_blog-1.png\",\"width\":3872,\"height\":1188},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/data-warehousing-for-microservice-architecture-in-microsoft-azure\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Expert View\",\"item\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/expert-view\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Data Warehousing for Microservice Architecture in Microsoft Azure\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/#website\",\"url\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/\",\"name\":\"Devoteam\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/devoteam.info\\\/en-nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-NL\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Data Warehousing for Microservice Architecture in Microsoft Azure | Devoteam","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:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/","og_locale":"en_US","og_type":"article","og_title":"Data Warehousing for Microservice Architecture in Microsoft Azure","og_description":"Modern IT Paradigms: Decentralization vs Centralization There seems to be a conflict about the design philosophies of two of the modern IT paradigms. On the one hand there is the idea of microservice architecture. The idea that rather than being monolithic, systems should be made up of independent but connected parts. By giving these parts, [&hellip;]","og_url":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/","og_site_name":"Devoteam","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/","url":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/","name":"Data Warehousing for Microservice Architecture in Microsoft Azure | Devoteam","isPartOf":{"@id":"https:\/\/devoteam.info\/en-nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/#primaryimage"},"image":{"@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/#primaryimage"},"thumbnailUrl":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png","datePublished":"2021-04-07T06:51:10+00:00","breadcrumb":{"@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/#breadcrumb"},"inLanguage":"en-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/"]}]},{"@type":"ImageObject","inLanguage":"en-NL","@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/#primaryimage","url":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png","contentUrl":"https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png","width":3872,"height":1188},{"@type":"BreadcrumbList","@id":"https:\/\/devoteam.info\/en-nl\/expert-view\/data-warehousing-for-microservice-architecture-in-microsoft-azure\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devoteam.info\/en-nl\/"},{"@type":"ListItem","position":2,"name":"Expert View","item":"https:\/\/devoteam.info\/en-nl\/expert-view\/"},{"@type":"ListItem","position":3,"name":"Data Warehousing for Microservice Architecture in Microsoft Azure"}]},{"@type":"WebSite","@id":"https:\/\/devoteam.info\/en-nl\/#website","url":"https:\/\/devoteam.info\/en-nl\/","name":"Devoteam","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devoteam.info\/en-nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-NL"}]}},"uagb_featured_image_src":{"full":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1.png",3872,1188,false],"thumbnail":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-150x150.png",150,150,true],"medium":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-300x92.png",300,92,true],"medium_large":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-768x236.png",768,236,true],"large":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-1024x314.png",1024,314,true],"1536x1536":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-1536x471.png",1536,471,true],"2048x2048":["https:\/\/devoteam.info\/wp-content\/uploads\/2024\/12\/DataWarehousing_blog-1-2048x628.png",2048,628,true]},"uagb_author_info":{"display_name":"lea.mitteaux","author_link":"https:\/\/devoteam.info\/en-nl\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"Modern IT Paradigms: Decentralization vs Centralization There seems to be a conflict about the design philosophies of two of the modern IT paradigms. On the one hand there is the idea of microservice architecture. The idea that rather than being monolithic, systems should be made up of independent but connected parts. By giving these parts,&hellip;","_links":{"self":[{"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/expert-view\/601851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/expert-view"}],"about":[{"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/types\/expert-view"}],"version-history":[{"count":0,"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/expert-view\/601851\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/media\/353674"}],"wp:attachment":[{"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/media?parent=601851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/categories?post=601851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/tags?post=601851"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/devoteam.info\/en-nl\/wp-json\/wp\/v2\/industry?post=601851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}