Dapr in Practice - Marc Klefter - NDC Oslo 2024

Learn how Dapr simplifies cloud-native development with its service invocation, messaging, state management & workflow building blocks. Explore real implementation patterns.

Key takeaways
  • Dapr is a Distributed Application Runtime that provides building blocks for cloud-native applications, with most deployments (90%+) running on Kubernetes

  • Key building blocks include:

    • Service invocation
    • Pub/Sub messaging
    • State management
    • Workflows
    • Bindings for external system integration
  • Applications interface with Dapr through a sidecar architecture, providing location transparency and decoupling from infrastructure details

  • Components are pluggable implementations that enable Dapr building blocks to work with specific technologies (e.g., Redis for state, SNS/SQS for messaging)

  • Dapr is not an all-or-nothing proposition - teams can adopt building blocks incrementally as needed

  • While Dapr provides infrastructure abstraction, teams still need to handle:

    • Service naming and discovery
    • Component provisioning and configuration
    • Access control policies
    • Security considerations
  • The workflow feature enables modeling of complex business processes with built-in durability and error handling

  • Dapr can work alongside service meshes, though there is some overlap in capabilities

  • Key benefits include:

    • Portability between environments/clouds
    • Standardized building blocks across languages
    • Separation of business logic from infrastructure code
    • Built-in observability and security features
  • Common adoption pattern is to start with a modular monolith using messaging, then gradually extract services leveraging Dapr building blocks