{"id":9187,"date":"2021-02-17T08:05:23","date_gmt":"2021-02-17T07:05:23","guid":{"rendered":"https:\/\/whiteduck.de\/?p=9187"},"modified":"2026-04-13T10:29:39","modified_gmt":"2026-04-13T08:29:39","slug":"dapr-the-future-of-cloudnative-development-is-here","status":"publish","type":"post","link":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/","title":{"rendered":"Dapr \u2013 The Future of Cloud-Native development is here"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><\/div><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1170px + 0px );margin-left: calc(-0px \/ 2 );margin-right: calc(-0px \/ 2 );\"><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;width:100%;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one\" style=\"--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:20px;--awb-margin-left-small:0px;\"><h1 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:32;line-height:1.31;\"><\/p>\n<p>Dapr \u2013 The Future of Cloud-Native development is here<\/p>\n<p><\/h1><\/div><div class=\"fusion-text fusion-text-1\"><\/div><\/p>\n\n\n<p>Dapr v1.0.0 is here! To be precise, it was released <a href=\"https:\/\/github.com\/dapr\/dapr\/releases\/tag\/v1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\">tonight<\/a> and is now considered ready for use in production workloads. In fact, there are already companies that are successfully using Dapr in production. So why is this exciting? Read on to find out how Dapr can help you be more productive when developing distributed systems such as microservices.<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why is Dapr relevant to you?<\/h2>\n\n\n\n<p>It is a novel application runtime, which does not limit developers to using a particular programming language, framework, or environment. This allows cloud-native developers to truly embrace<a href=\"https:\/\/whiteduck.de\/what-are-polyglot-microservices\/\" target=\"_blank\" rel=\"noreferrer noopener\"> the polyglot nature of microservices<\/a>. Furthermore, it is specifically aimed at simplifying developing distributed applications. A task that is commonly described as hard and error-prone. With Dapr this task becomes a lot easier. Possible use cases for Dapr are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Polyglot microservice architectures or applications<\/li>\n\n\n\n<li>Migrating a monolith to microservices step-by-step using Dapr building blocks<\/li>\n\n\n\n<li>Developing and running applications in different environments, e.g., local and cloud<\/li>\n\n\n\n<li>Multi-cloud scenarios<\/li>\n\n\n\n<li>When building blocks provide functions that are needed in the application<\/li>\n<\/ul>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Dapr?<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo.png\" alt=\"\" class=\"lazyload wp-image-9335\" width=\"273\" height=\"204\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27273%27%20height%3D%27204%27%20viewBox%3D%270%200%20273%20204%27%3E%3Crect%20width%3D%27273%27%20height%3D%27204%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo-200x149.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo-300x224.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo-400x298.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo-600x447.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/dapr-logo.png 723w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 273px) 100vw, 273px\" \/><\/figure>\n<\/div>\n\n\n<p>Dapr, the Distributed Application Runtime, is a project initiated and announced by Microsoft on October 16, 2019. However, Dapr is not owned by Microsoft and is being transitioned to an open governance model. Hence, it is an open-source project that is publicly developed on <a href=\"https:\/\/github.com\/dapr\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a>.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic.<\/p>\n<cite><a href=\"https:\/\/dapr.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Dapr &#8211; portable, event-driven, serverless runtime.<\/a><\/cite><\/blockquote>\n\n\n\n<p>To achieve this, Dapr is built on the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/architecture\/patterns\/sidecar\" target=\"_blank\" rel=\"noreferrer noopener\">sidecar pattern<\/a> using HTTP or gRPC APIs to communicate with the application code. The general idea is to encode industry best practices in building blocks to simplify distributed application development. Instead of a programming language-specific SDK or library to work with a third-party component, developers use a programming language agnostic Dapr building block. This decouples application code from third-party services and therefore simplifies using different programming languages.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-1024x486.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-1024x486.png\" alt=\"\" class=\"lazyload wp-image-9387\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27486%27%20viewBox%3D%270%200%201024%20486%27%3E%3Crect%20width%3D%271024%27%20height%3D%27486%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-200x95.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-300x142.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-400x190.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-600x285.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-768x365.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-800x380.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-1024x486.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23-1200x570.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-23.png 1297w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How does it work?<\/h2>\n\n\n\n<p>As already mentioned, Dapr consists of various building blocks that run as a sidecar alongside the application. Each building block specifies a behaviour and API that is implemented by Dapr components. Therefore, building blocks are the specification, whereas components are the actual implementation. This allows it to have several implementations for each building block, which can be swapped out without affecting the application. This is possible because the application only sees and implements the Dapr API, without knowing of the actual implementation of the building block. As a result, swapping out third-party dependencies can be done in a declarative way. The only thing that changes is the YAML file that specifies the third-party components behaviour.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"542\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-1024x542.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-1024x542.png\" alt=\"\" class=\"lazyload wp-image-9262\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27542%27%20viewBox%3D%270%200%201024%20542%27%3E%3Crect%20width%3D%271024%27%20height%3D%27542%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-200x106.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-300x159.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-400x212.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-600x318.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-768x407.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-800x424.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-1024x542.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes-1200x635.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview_kubernetes.png 1220w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p>In Kubernetes, the sidecar providing the Dapr functionality runs a separate Container in a Kubernetes Pod. For those, that are familiar with <a href=\"https:\/\/whiteduck.de\/docker-rosenheim-meetup-what-is-a-service-mesh\/\" target=\"_blank\" rel=\"noreferrer noopener\">Service Meshes<\/a>, this should sound familiar. The general concept of using a sidecar to extend the functionality of an application is similar between Dapr and Service Meshes. However, in contrast to Service Mesh sidecars, which are transparent to the application, Dapr sidecars are meant to be explicitly invoked by the application via HTTP or gRPC.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"450\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-1024x450.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-1024x450.png\" alt=\"\" class=\"lazyload wp-image-9361\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27450%27%20viewBox%3D%270%200%201024%20450%27%3E%3Crect%20width%3D%271024%27%20height%3D%27450%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-200x88.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-300x132.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-400x176.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-600x264.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-768x338.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-800x352.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-1024x450.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes-1200x528.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/overview-sidecar-kubernetes.png 1214w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building Blocks Overview<\/h2>\n\n\n\n<p>Dapr building blocks are pluggable and opt-in, so cloud-native developers can choose only the functionality they need. They provide the functionality to build resilient, event-driven and stateful distributed applications without the complexity of implementing it yourself.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"416\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-1024x416.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-1024x416.png\" alt=\"\" class=\"lazyload wp-image-9260\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27416%27%20viewBox%3D%270%200%201024%20416%27%3E%3Crect%20width%3D%271024%27%20height%3D%27416%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-200x81.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-300x122.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-400x163.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-600x244.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-669x272.png 669w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-768x312.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-800x325.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-1024x416.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-1200x488.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/building_blocks-1536x624.png 1536w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Service-to-Service Invocation<\/h3>\n\n\n\n<p class=\"has-text-align-left\">The <em><a href=\"https:\/\/docs.dapr.io\/developing-applications\/building-blocks\/service-invocation\/service-invocation-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\">service-to-service invocation<\/a><\/em> building block provides distributed applications with service discovery and service invocation. As can be seen in the following example, the <em>python app<\/em> can invoke a service by simply calling an HTTP endpoint via POST with the data to invoke the method in the <em>node app<\/em>. In this example, Dapr takes care of service discovery, service invocation, security, handling of retries, dealing with transient errors and even distributed tracing, all without adding a single line of code to the python or node app. In short, Dapr provides developers with an endpoint that acts as a reverse proxy with built-in service discovery and additionally offers distributed tracing, metrics, and error handling.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-1024x472.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-1024x472.png\" alt=\"\" class=\"lazyload wp-image-9371\" width=\"758\" height=\"349\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27758%27%20height%3D%27349%27%20viewBox%3D%270%200%20758%20349%27%3E%3Crect%20width%3D%27758%27%20height%3D%27349%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-200x92.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-300x138.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-400x184.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-600x276.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-768x354.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-800x369.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-1024x472.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-1200x553.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/service-invocation-overview-example-1536x708.png 1536w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 758px) 100vw, 758px\" \/><\/figure>\n<\/div>\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">State Management<\/h3>\n\n\n\n<p>The <em><a href=\"https:\/\/docs.dapr.io\/developing-applications\/building-blocks\/state-management\/state-management-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\">state management<\/a><\/em> building block offers Key\/Value storage APIs to communicate with third-party state stores. To store data in a state store component, the <em>myApp<\/em> application only needs to send a POST request to the Dapr sidecar with the name of the state store, <em>myStateStore<\/em> in the example below, and the data in a key\/value format in JSON. Retrieving data is done in an equivalent way by sending a GET request to the Dapr sidecar. Again, the state store must be specified, and in this case additionally the key to the data, which is <em>planets.<\/em> This sounds trivial at first, but Dapr additionally handles distributed concurrency, data consistency, retry policies and even bulk CRUD operations. All this is provided via an easy-to-use to use API without the need to add or learn a third-party SDK to the application.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-1024x491.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-1024x491.png\" alt=\"\" class=\"lazyload wp-image-9373\" width=\"770\" height=\"369\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27770%27%20height%3D%27369%27%20viewBox%3D%270%200%20770%20369%27%3E%3Crect%20width%3D%27770%27%20height%3D%27369%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-200x96.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-300x144.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-400x192.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-600x288.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-768x369.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-800x384.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-1024x491.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-1200x576.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview-1536x737.png 1536w, https:\/\/whiteduck.de\/wp-content\/uploads\/state-management-overview.png 1690w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Publish and Subscribe<\/h3>\n\n\n\n<p>The <em><a href=\"https:\/\/docs.dapr.io\/developing-applications\/building-blocks\/pubsub\/pubsub-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\">publish and subscribe<\/a><\/em> building block enables distributed applications to communicate asynchronously via Messages. This pattern is particularly useful for decoupling microservices from each other. Traditionally, however, this creates a dependency on a message broker or queuing system that manages <em>topics<\/em> where applications publish messages or subscribe to receive messages. In addition, there is a dependency on a specific third-party component and code in each application to interact with it. With Dapr, this coupling to a specific <em>pubsub<\/em> component is removed, making the application more portable. Furthermore, Dapr offers an at-least-once delivery guarantee, consumer groups with multiple application instances and topic scoping. Again, this is provided without adding code or new SDKs to the application.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-1024x421.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-1024x421.png\" alt=\"\" class=\"lazyload wp-image-9375\" width=\"755\" height=\"310\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27755%27%20height%3D%27310%27%20viewBox%3D%270%200%20755%20310%27%3E%3Crect%20width%3D%27755%27%20height%3D%27310%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-200x82.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-300x123.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-400x165.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-600x247.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-768x316.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-800x329.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example-1024x421.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/pubsub-publish-subscribe-example.png 1065w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">More<\/h3>\n\n\n\n<p>A complete overview over all building blocks and their technical details can be found in the <a href=\"https:\/\/docs.dapr.io\/concepts\/building-blocks-concept\/\" target=\"_blank\" rel=\"noreferrer noopener\">Dapr Docs building blocks<\/a> section.<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Developing with Dapr<\/h2>\n\n\n\n<p>To start developing with Dapr you should head over to the Dapr Docs <a href=\"https:\/\/docs.dapr.io\/getting-started\/\" target=\"_blank\" rel=\"noreferrer noopener\">getting started section<\/a>. Dapr provides you with an easy-to-use CLI and can be run in self-hosted mode or in Docker containers. Thus, setting up a development environment is simple and done in minutes. To set up Dapr you only need to run a simple:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dapr init<\/code><\/pre>\n\n\n\n<p>This gives you a <em>Redis container instance<\/em> for state management and publish and subscribe, a Zipkin container instance for observability, a default components folder holding component definitions for the Redis and Zipkin containers and a Dapr placement service container instance for actor support. So, with a single command, you are ready to go. Now starting an application with a Dapr sidecar is as simple as running the following line of code. In detail, it says to run a Dapr sidecar on <em>port 3500<\/em> alongside the application <em>myapp<\/em>, which must be defined in a components YAML file in advance.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dapr run --app-id myapp --dapr-http-port 3500<\/code><\/pre>\n\n\n\n<p>Furthermore, Dapr provides developers with <a href=\"https:\/\/docs.dapr.io\/developing-applications\/sdks\/\" target=\"_blank\" rel=\"noreferrer noopener\">several SDKs<\/a> to simplify interaction with Dapr in the respective language. However, the SDKs are completely optional and only a convenience layer above the HTTP or gRPC API.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Now to see how this works in practice, check out our <a href=\"https:\/\/github.com\/whiteducksoftware\/dapr-demo\" target=\"_blank\" rel=\"noreferrer noopener\">Dapr-demo on GitHub<\/a>. It demonstrates the use of the <em>service invocation<\/em>, <em>state management<\/em> and <em>publish &amp; subscribe<\/em> building blocks in a polyglot microservice architecture.<\/p>\n<\/blockquote>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\">.<\/mark><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>We think Dapr is an exciting technology and the next evolutionary step for cloud-native development after Service Meshes. It has the potential to simplify the development of distributed applications and finally make polyglot microservice architectures a viable choice. So, in conclusion, if you are a distributed application developer, you should check out Dapr!<\/p>\n\n\n\n<p>Many thanks to all <a href=\"https:\/\/github.com\/dapr\/dapr\/graphs\/contributors\" target=\"_blank\" rel=\"noreferrer noopener\">contributors<\/a> who make this open source project possible at all!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dapr v1.0.0 is here! To be precise, it was released tonight and is now considered ready for use in production workloads. In fact, there are already companies that are successfully using Dapr in production. So why is this exciting? Read on to find out how Dapr can help you be more productive when developing distributed <a href=\"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/\"> <\/p>\n<div style=\"color:#ff9900\">[&#8230;]<\/div>\n<p><\/a><\/p>\n","protected":false},"author":14,"featured_media":9405,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_tribe_events_control_status":"","_tribe_events_control_status_canceled_reason":"","_tribe_events_control_status_postponed_reason":"","_tribe_events_control_online":"","_tribe_events_control_online_url":"","footnotes":""},"categories":[],"tags":[113,316,382,159,111,340,232],"class_list":["post-9187","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-azure","tag-cloudnative","tag-dapr","tag-kubernetes","tag-microservices","tag-microsoftazure","tag-opensource"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dapr \u2013 The Future of Cloud-Native development is here - white duck<\/title>\n<meta name=\"description\" content=\"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dapr \u2013 The Future of Cloud-Native development is here - white duck\" \/>\n<meta property=\"og:description\" content=\"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/\" \/>\n<meta property=\"og:site_name\" content=\"white duck\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/whiteduckgmbh\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-17T07:05:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T08:29:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1919\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Markus Voit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:site\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Markus Voit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/\"},\"author\":{\"name\":\"Markus Voit\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/786bc95aaeae8203e491c3acea75529e\"},\"headline\":\"Dapr \u2013 The Future of Cloud-Native development is here\",\"datePublished\":\"2021-02-17T07:05:23+00:00\",\"dateModified\":\"2026-04-13T08:29:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/\"},\"wordCount\":1495,\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\",\"keywords\":[\"Azure\",\"cloudnative\",\"Dapr\",\"Kubernetes\",\"Microservices\",\"microsoftazure\",\"opensource\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/\",\"name\":\"Dapr \u2013 The Future of Cloud-Native development is here - white duck\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\",\"datePublished\":\"2021-02-17T07:05:23+00:00\",\"dateModified\":\"2026-04-13T08:29:39+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/786bc95aaeae8203e491c3acea75529e\"},\"description\":\"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#primaryimage\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg\",\"width\":2560,\"height\":1919,\"caption\":\"dapr blogbeitrag header\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/dapr-the-future-of-cloudnative-development-is-here\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dapr \u2013 The Future of Cloud-Native development is here\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\",\"name\":\"white duck\",\"description\":\"Your Partner for Microsoft Azure &amp; AI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/786bc95aaeae8203e491c3acea75529e\",\"name\":\"Markus Voit\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/author\\\/markus_voit\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dapr \u2013 The Future of Cloud-Native development is here - white duck","description":"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.","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:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/","og_locale":"en_US","og_type":"article","og_title":"Dapr \u2013 The Future of Cloud-Native development is here - white duck","og_description":"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.","og_url":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/","og_site_name":"white duck","article_publisher":"https:\/\/www.facebook.com\/whiteduckgmbh","article_published_time":"2021-02-17T07:05:23+00:00","article_modified_time":"2026-04-13T08:29:39+00:00","og_image":[{"width":2560,"height":1919,"url":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Markus Voit","twitter_card":"summary_large_image","twitter_image":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","twitter_creator":"@whiteduck_gmbh","twitter_site":"@whiteduck_gmbh","twitter_misc":{"Written by":"Markus Voit","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#article","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/"},"author":{"name":"Markus Voit","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/786bc95aaeae8203e491c3acea75529e"},"headline":"Dapr \u2013 The Future of Cloud-Native development is here","datePublished":"2021-02-17T07:05:23+00:00","dateModified":"2026-04-13T08:29:39+00:00","mainEntityOfPage":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/"},"wordCount":1495,"image":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","keywords":["Azure","cloudnative","Dapr","Kubernetes","Microservices","microsoftazure","opensource"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/","url":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/","name":"Dapr \u2013 The Future of Cloud-Native development is here - white duck","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#primaryimage"},"image":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","datePublished":"2021-02-17T07:05:23+00:00","dateModified":"2026-04-13T08:29:39+00:00","author":{"@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/786bc95aaeae8203e491c3acea75529e"},"description":"In this blog post, you will learn how the open-source project Dapr simplifies your cloud-native development of polyglot and distributed applications and microservices.","breadcrumb":{"@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#primaryimage","url":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","contentUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/erik-odiin-nfQk1YdGoNc-unsplash-scaled.jpg","width":2560,"height":1919,"caption":"dapr blogbeitrag header"},{"@type":"BreadcrumbList","@id":"https:\/\/whiteduck.de\/en\/dapr-the-future-of-cloudnative-development-is-here\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/whiteduck.de\/en\/"},{"@type":"ListItem","position":2,"name":"Dapr \u2013 The Future of Cloud-Native development is here"}]},{"@type":"WebSite","@id":"https:\/\/whiteduck.de\/en\/#website","url":"https:\/\/whiteduck.de\/en\/","name":"white duck","description":"Your Partner for Microsoft Azure &amp; AI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whiteduck.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/786bc95aaeae8203e491c3acea75529e","name":"Markus Voit","url":"https:\/\/whiteduck.de\/en\/author\/markus_voit\/"}]}},"_links":{"self":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/9187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/comments?post=9187"}],"version-history":[{"count":1,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/9187\/revisions"}],"predecessor-version":[{"id":25316,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/9187\/revisions\/25316"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media\/9405"}],"wp:attachment":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media?parent=9187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/categories?post=9187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/tags?post=9187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}