win-local-inc/message-bus

A package for message bus.
5,828
Install
composer require win-local-inc/message-bus
Latest Version:3.0.6
PHP:^8.1|^8.3
License:MIT
Last Updated:Sep 24, 2026
Links: GitHub  ·  Packagist
Maintainer: rawaby88

Message Bus Package

Installation

  • PHP 8.1 is required

  • remove sqs-sns from config/queue.php, it will be added by provider, or update it with

'sqs-sns' => [
        'driver' => 'sqs-sns',
        'key' => env('AWS_SQS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SQS_SECRET_ACCESS_KEY'),
        'queue' => env('AWS_SQS_QUEUE', 'your-queue-url'),
        'region' => env('AWS_SQS_REGION', 'us-east-2'),
        'topic' => env('AWS_SNS_TOPIC'),
        'routes' => [
            env('AWS_SNS_TOPIC') => 'WinLocal\\MessageBus\\Jobs\\SqsGetJob',
        ],
        'version' => 'latest',
        'ua_append' => [
            'L5MOD/'.\Aws\Laravel\AwsServiceProvider::VERSION,
        ],
    ],
  • add envs :
AWS_SQS_HANDLER_PATHS= app paths to handlers separeted by "," resolved by App::path($path)
AWS_SQS_VALIDATOR_PATHS= app paths to validators separeted by "," resolved by App::path($path)
AWS_SQS_ACCESS_KEY_ID=
AWS_SQS_SECRET_ACCESS_KEY=
AWS_SQS_REGION=us-east-2
AWS_SQS_QUEUE=
AWS_SNS_TOPIC=
  • handlers:

There are two ways to implement handlers

  1. Standard Laravel Job see -> WinLocal\MessageBus\Tests\Data\Handlers\AdvertCreated.php
  2. Interface WinLocal\MessageBus\Contracts\ExecutorInterface see -> WinLocal\MessageBus\Tests\Data\Handlers\AudienceCreated.php

Attribute WinLocal\MessageBus\Attributes\HandleSubjects needs to be used, so resolver will use it.

  • validators:

There is optional validator available, that will be excecuted before handlers. Validator needs to extend WinLocal\MessageBus\Contracts\AbstractExecutorValidator see -> WinLocal\MessageBus\Tests\Data\Validators\AudienceCreated.php

  • push notification:
WinLocal\MessageBus\Jobs\SnsSendJob::dispatch(\WinLocal\MessageBus\Enums\Subject $subject, array $message);
  • each service needs to run supervisor

php artisan queue:work sqs-sns --max-jobs=100 --tries=3 --max-time=3600

  • to run tests on package

vendor/bin/testbench package:test --configuration=tests/phpunit.xml

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

634,760,849 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

493,838,477 7,443
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

408,553,772 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

387,976,821 4,658