> Markdown version of [/videos/1197-dapr-in-practice?t=271](https://www.wearedevelopers.com/videos/1197-dapr-in-practice?t=271). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Dapr in Practice Is vendor lock-in dictating your microservices? Learn how Dapr’s universal sidecar API abstracts away 90% of infrastructure concerns to guarantee true cloud-native portability. - **Speakers:** [marcklefter](https://www.wearedevelopers.com/@marcklefter) - **Event:** World Congress 2024 - **Published:** August 29, 2024 - **Duration:** 24:08 - **URL:** https://www.wearedevelopers.com/videos/1197-dapr-in-practice ## Summary The presentation introduces Dapr (Distributed Application Runtime) as a powerful open-source framework for developing distributed applications, specifically targeted at cloud-native workloads running on Kubernetes. At its core, Dapr abstracts away cross-cutting and application-level infrastructure concerns by offering standard API building blocks via a sidecar architecture. Rather than tying an application directly to vendor-specific SDKs—such as AWS SNS or SQS—developers invoke a universal HTTP/gRPC API. This decoupling yields full application portability, ensuring workloads remain resilient against vendor lock-in or future architecture modifications. While Dapr successfully standardizes essential microservice patterns like pub/sub, transactional outboxes, and state management, it is crucial to recognize that "no abstraction layer can hide" fundamental infrastructure characteristics. Factors like network latency, routing pricing, and error handling must still be proactively managed. Dapr typically covers roughly 85 to 90 percent of a system's business logic constraints. For edge cases requiring deeper database integrations, such as executing raw PostgreSQL queries, the highly recommended approach is to isolate those specific data access needs within distinct, non-Dapr microservices to preserve the main application's portability boundary. Adopting Dapr also accelerates platform engineering maturity by establishing a clear separation of responsibilities between application and infrastructure teams. Platform engineers can manage resource provisioning dynamically using declarative tools like Crossplane or internal developer platforms (e.g., Kratix), transparently supplying the underlying dependencies that Dapr interfaces with. Because the runtime is inherently modular, engineering teams can embrace it incrementally, applying specific building blocks feature-by-feature when strangling a legacy monolith. Ultimately, Dapr proves to be a strategic choice for achieving cross-platform flexibility, though teams must remain mindful of exact resource orchestration workflows and how they integrate distributed tracing contexts across synchronous and asynchronous invocations. **Keywords:** dapr, distributed application runtime, microservices patterns, kubernetes sidecar architecture, application portability, pub/sub messaging, transactional outbox pattern, infrastructure abstraction, crossplane infrastructure provisioning, platform engineering teams, vendor lock-in prevention, microservices state management, legacy monolith strangulation, distributed tracing context, open telemetry integration, temporal workflow engine, cloud-native workloads, event modeling techniques ## Chapters 1. **Introduction to distributed application patterns and infrastructure requirements** (00:01) — Understanding microservice patterns and the cross-cutting concerns required in cloud-native environments. 1. **Vendor capability coupling in publisher and subscriber messaging** (02:16) — Integrating vendor-specific event messaging SDKs complicates application code and causes infrastructure lock-in. 1. **Dapr architecture and abstraction component building blocks** (04:31) — The Dapr runtime uses abstractions and components to decouple applications from specific cloud implementations. 1. **Integrating Dapr implementations as a Kubernetes sidecar** (07:47) — Dapr handles vendor implementations from within a co-located sidecar container managed by the control plane. 1. **Simplifying service invocation and distributed tracing observability** (09:53) — Dapr transparently encrypts interactions and extends telemetry context across synchronous and asynchronous invocations. 1. **Achieving multi-cloud application portability through standardized interfaces** (11:05) — Reusable component interfaces allow systems to securely shift between cloud vendors without refactoring business logic. 1. **Aligning infrastructure abstractions with event-driven domain models** (12:38) — Mapping vertical software slices directly to transactional outbox and state management abstractions streamlines implementations. 1. **Isolating raw database queries and managing leaky abstractions** (14:04) — Isolating raw queries into dedicated services protects core application portability against inherent cloud platform restrictions. 1. **Provisioning component dependencies using Crossplane and Kubernetes manifests** (16:41) — Enabling developers to declaratively claim infrastructure resources using platforms like Crossplane and GitOps accelerates delivery. 1. **Strategies for incrementally adopting Dapr in legacy architectures** (20:06) — Isolating complex cloud platform interfaces improves portability but requires mindful adjustments when migrating monolithic systems. 1. **Differences in workflows and asynchronous trace context propagation** (22:10) — Dapr offers native workflow engines similar to Temporal and uses OpenTelemetry for linking decoupled asynchronous operations. ## Related Moments - [Introducing Dapr as an event-driven application runtime](https://www.wearedevelopers.com/videos/1528-developing-asp-net-core-microservices-with-dapr-a-practical-guide) (from "Developing ASP.NET Core Microservices with Dapr: A practical guide") - [Building reliable microservices with the Dapr open source project](https://www.wearedevelopers.com/videos/1720-wearedevelopers-live-dapr-pixels-and-generative-art-open-source-and-communities-and-more) (from "WeAreDevelopers LIVE - Dapr / Pixels and Generative Art / Open Source and Communities / and more") - [Weighing productivity benefits against generic framework limitations](https://www.wearedevelopers.com/videos/1528-developing-asp-net-core-microservices-with-dapr-a-practical-guide) (from "Developing ASP.NET Core Microservices with Dapr: A practical guide") - [Understanding Dapr building blocks and sidecar architecture](https://www.wearedevelopers.com/videos/1528-developing-asp-net-core-microservices-with-dapr-a-practical-guide) (from "Developing ASP.NET Core Microservices with Dapr: A practical guide") - [Implementing Dapr sidecars for service-to-service communication](https://www.wearedevelopers.com/videos/1226-net-microservices-in-azure-container-apps) (from ".NET Microservices in Azure Container Apps") - [Hosting Dapr sidecars in scalable Kubernetes infrastructure](https://www.wearedevelopers.com/videos/1528-developing-asp-net-core-microservices-with-dapr-a-practical-guide) (from "Developing ASP.NET Core Microservices with Dapr: A practical guide") ## Related Articles - [Why Event-Driven Architecture Isn’t About Speed (and When You Actually Need It)](https://www.wearedevelopers.com/magazine/745-why-event-driven-architecture-isn-t-about-speed-and-when-you-actually-need-it) - [MLops – Deploying, Maintaining And Evolving Machine Learning Models in Production](https://www.wearedevelopers.com/magazine/115-mlops-deploying-maintaining-and-evolving-machine-learning-models-in-production) - [Building AI Solutions with Rust and Docker](https://www.wearedevelopers.com/magazine/494-building-ai-solutions-with-rust-and-docker) - [Everything a Developer Needs to Know About MCP with Neo4j](https://www.wearedevelopers.com/magazine/604-everything-a-developer-needs-to-know-about-mcp-with-neo4j) ## Related Jobs - [Platform Engineer - Mercury Runtime Platform](https://www.wearedevelopers.com/jobs/ext/293235-platform-engineer-mercury-runtime-platform) at **Raiffeisen Bank International AG** - [Senior Software Engineer, Client Apps Platform](https://www.wearedevelopers.com/jobs/ext/1773893-senior-software-engineer-client-apps-platform) at **GitHub** - [Principal Software Engineer, Enterprise AI Platform](https://www.wearedevelopers.com/jobs/ext/1467292-principal-software-engineer-enterprise-ai-platform) at **GitHub** - [Devops Engineer](https://www.wearedevelopers.com/jobs/ext/1940926-devops-engineer) at **Bitpanda** - [Software Engineer, Platform Engineering (L2)](https://www.wearedevelopers.com/jobs/ext/1956829-software-engineer-platform-engineering-l2) at **Twilio** - [Platform Engineer (DevOps)](https://www.wearedevelopers.com/jobs/48264-platform-engineer-devops) at **WDW Consulting GmbH**