All Videos

Dapr Day: Building Real-World Applications with Dapr: A Startup Developer's Journey

As developers, we often face the challenge of building reliable, scalable business workflows. At Dapr Day 2024, we got an insider's look at how Dapr tackles these real-world scenarios.

Real-World Dapr Patterns: From Payment Processing to Complex Workflows

At Dapr Day 2024, Whit Waldo takes us on a deep dive into practical Dapr patterns. Let's explore how these patterns transform distributed applications from complex challenges into manageable solutions.

The Art of Payment Processing [24:15]

Whit starts with a common challenge: failed payments. "Payment dubbing is a feature that a lot of payment processors include," he explains. "That's the idea that you charge the card, it didn't work, you want to try it again."

His solution using Dapr actors elegantly handles:

  • Scheduled retry attempts
  • Escalating reminder emails
  • Payment status tracking
  • Graceful timeout management

A Fresh Take on Document Generation [25:20]

Here's where Whit challenges conventional wisdom: forget generic, all-purpose workflows. Instead, he advocates for discrete workflows for different document types. His reasoning? Maintainability.

"I favor having a lot of very similar workflows and activities instead of one super generic workflow," Whit shares. "Every time I change that, I'm going to have to deal with 'what changed?' Did I change the model? Did I change the flow?"

The Receipt Generation Pipeline [26:32]

Whit demonstrates a real-world example: generating receipts. The workflow includes:

  1. Fetching details from state store
  2. Generating PDF documents
  3. Storing in CDN
  4. Sending customer notifications
  5. Tracking email lifecycle

Pro tip from Whit: "It's cheaper and more lightweight to pass messages like URLs to objects instead of passing the entire object around."

Smart Versioning Strategies [28:33]

Whit shares crucial insights about workflow versioning, recommending:

  • Clear timeouts for workflow duration
  • Shorter workflows when possible
  • Clear versioning strategies for models
  • Understanding maintenance implications

"Be careful versioning very long-running workflows," he warns. "You're going to have to have some way of understanding how to deal with each version in a readily used way."

Scaling Dashboard Reports [29:37]

Here's where Whit's approach shines. Instead of running expensive queries for each report view, he demonstrates using Dapr actors for efficient dashboard elements:

  • Individual chart/element data refresh
  • Template actors for visualization styles
  • Smart caching to prevent database overload
  • Automatic cleanup through TTL

Building Flexible Data Aggregation [33:16]

Whit concludes with practical data aggregation patterns. Using Dapr's pub/sub capabilities, he shows how to:

  • Route messages through topics
  • Handle multiple service subscriptions
  • Manage persistence through queues
  • Scale processing independently

The Power of Flexibility

What makes these patterns powerful is Dapr's flexibility. As Whit demonstrates, you're not locked into specific implementations – you can adapt these patterns while maintaining reliability and scalability.

"Dapr is really good at stepping in, solving a lot of these individual problems," Whit concludes. "You can build very elaborate, complex things with that."

Getting Started

Ready to implement these patterns? The Dapr community is there to help. Whit invites developers to join the Dapr Discord channel where you can discuss these patterns and get support from experienced developers.

Remember, these aren't theoretical concepts – they're battle-tested patterns being used in production systems today. Start small, perhaps with the payment processing pattern, and gradually expand to more complex workflows as you become comfortable with Dapr's capabilities.

Have you implemented similar patterns with Dapr? Join the discussion on Discord where Whit and other community members are ready to help.