

Dapr currently supports a wide range of message brokers, including Redis, Kafka, NATS, and cloud services such as AWS SQS/SNS, Azure EventHubs, and Google Pub/sub.
#MASSTRANSIT VS AKKA PORTABLE#
That approach makes your service implementation portable and less dependent on the underlying messaging infrastructure. To receive messages, Dapr subscribes to the Dapr pub/sub component on behalf of your service and delivers the messages to an endpoint when they arrive. This building block then makes calls into a Dapr pub/sub component that encapsulates a specific message broker product. Publishing a message requires your service to make a network call to a Dapr pub/sub building block, exposed as a sidecar. The Dapr pub/sub building block provides a platform-agnostic API to send and receive messages with the at-least-once guarantee. Provides first-class support for producing and consuming events with its building blocks That enables developers to pick their favorite programming language to build loosely-coupled, polyglot components that compose their event-driven systems while harnessing the power brings by Dapr.įor example, a Java-based order processing component can communicate with a NodeJS based Emailing component via common Dapr runtime. How building blocks expose a public API that is called from your code, using components to implement the building blocks’ capability.
#MASSTRANSIT VS AKKA CODE#
Compose your system with loosely-coupled, polyglot componentsĭapr exposes its APIs as a sidecar architecture, either as a container or as a process, not requiring the application code to include any Dapr runtime code.Īs shown in the figure below, the application code can communicate with Dapr APIs through standard interfaces such as HTTP and gRPC. While being portable and platform-agnostic, the following are the five reasons why you should consider Dapr to build your next event-driven system. Event brokers - Who store events until they are consumedīuilding an event-driven system means identifying what components will be playing the above roles and carefully modeling their asynchronous interactions using events.We can group these components and assign them the following roles based on how they interact with events.

A Typical Event-driven Architecture - SourceĪn event-driven system is composed of loosely-coupled, self-contained components that utilize events to communicate with each other.
