Most commonly asked questions about Dapr

Is Dapr a Service mesh, what’s the difference ?

  • Service meshes are closer to infrastructure layer and operator concerns
  • Dapr is closer to applications layer which developers are reponsible for
  • There is an overlap between Dapr and Service meshes …
  • … but, you can use them together as well — see a demo of Dapr and Linkerd working together

Dapr is a “runtime” — what does that mean?

I thought about this as well, when I first started exploring Dapr. In my specific case (Java middleware background), “runtime” was an application server which provided a “managed environment” (concurrency, security etc.) to my code (WAR, EAR etc.)

(Myth) Dapr depends on Docker

Guess what, this was also covered in one of the community calls, which showcased Dapr working in standalone mode on an AWS EC2 instance

  • “Dapr needs docker” == false
  • In standalone mode, Dapr runs as a process
  • In Kubernetes, there is some magic going on — one of them being the sidecar injection which is taken care of by the dapr-sidecar-injector Pod (check out the implementation here)

What about Docker Compose support?

Right now, with the Dapr CLI, dapr init will start Dapr (using Docker) and you can then start your app along with Dapr using dapr run. But a common use case is to run treat these as a single unit, and Docker Compose helps with that

Pub/Sub and Bindings — what’s the difference?

With Bindings, you can interact with external systems:

  • Input bindings: trigger your app with events coming in from external systems
  • Output bindings: invoke external systems

That’s it.. for now!

But I do want to leave you with a few handy resources:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abhishek Gupta

Abhishek Gupta

Principal Developer Advocate at AWS | I ❤️ Databases, Go, Kubernetes