Dapr is a runtime that facilitates the development of distributed and event-driven applications often associated to microservices architectures. Through its building blocks and components, it allows developers to externalize several elements of complexity and works with any language. You won't have to worry about retry loops, proprietary SDKs and protocols, and observability.