khaidir / laravel-dapr

A Laravel (dependency free) dapr boilerplate. Shows two laravel services connected using dapr sidecar with Redis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel Publisher Consumer example using Dapr

Dapr

Dapr is a portable, event-driven runtime that makes it easy for any developer to build resilient, stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks. Leveraging the benefits of a sidecar architecture, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic.

Dapr Services

Laravel Caveats

Dapr PHP sdk does not work with latest version of laravel due dependecy issues. To solve this we needed a way to work natively with dapr using dapr's internal Api.

Advantages of using Dapr over laravel queues

Dapr is portable

Dapr is language agnostic

Dapr is platform agnostic

Dapr is cloud agnostic

Solution

The above example provides two services

  • Publisher Service: This service will push messages onto dapr topic
  • Consumer Service: This service subscribes to the topic used by the publisher service, and route the request as per rules

Running the example

  • install composer

  • run composer in publisher and consumer folders

cd consumer && composer install
cd publisher && composer install
docker compose up
{
        "orderId": "400",
        "type": "cancel"
}
  • Observe the log in consumer app will print the received message

Dapr config

Detailed explanation

Medium

About

A Laravel (dependency free) dapr boilerplate. Shows two laravel services connected using dapr sidecar with Redis


Languages

Language:PHP 72.5%Language:Blade 27.2%Language:JavaScript 0.3%