PHPackages                             amranidev/micro-bus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. amranidev/micro-bus

ActiveLaravel-package[Queues &amp; Workers](/categories/queues)

amranidev/micro-bus
===================

Build your laravel/lumen microservice application with AWS SNS/SQS

v0.3.5(3y ago)7327.5k↓37%11MITPHPCI failing

Since Jun 9Pushed 1y ago3 watchersCompare

[ Source](https://github.com/amranidev/micro-bus)[ Packagist](https://packagist.org/packages/amranidev/micro-bus)[ RSS](/packages/amranidev-micro-bus/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (12)Used By (0)

 Build your laravel microservices with micro-bus
=================================================

[](#---build-your-laravel-microservices-with-micro-bus)

 [ ![Build Status](https://github.com/amranidev/micro-bus/actions/workflows/tests.yml/badge.svg) ](https://github.com/amranidev/micro-bus/actions) [ ![Total Downloads](https://camo.githubusercontent.com/eb5829d3afa2859e7d37c9ce946cae4ea07a829f5599b02384d5582f4e8496fe/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616d72616e696465762f6d6963726f2d627573) ](https://packagist.org/packages/amranidev/micro-bus) [ ![StyleCI](https://camo.githubusercontent.com/7f17022c94c6eb1cc4d47f539a0a76dd6e16f9d4b6a36b77003a14afc96a1fe8/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3139303330383930372f736869656c643f6272616e63683d6d6173746572) ](https://github.styleci.io/repos/190308907) [ ![Latest Stable Version](https://camo.githubusercontent.com/c084318994c9499804e4c03753ba4315930fc1979a8525d183ba25798dbffca4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616d72616e696465762f6d6963726f2d627573) ](https://packagist.org/packages/amranidev/micro-bus) [ ![License](https://camo.githubusercontent.com/e5f66aa154746bc0d0e32ef536bc08a09712c895c0e7c95bed448842670fb50e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f616d72616e696465762f6d6963726f2d627573) ](https://packagist.org/packages/amranidev/micro-bus)

What is micro-bus?
------------------

[](#what-is-micro-bus)

**MicroBus** is a laravel/lumen package for building microservices with event-driven architecture (Pub-Sub) using Amazon web services (SNS/SQS).

What is event-driven microservices?
-----------------------------------

[](#what-is-event-driven-microservices)

- [Edmunds: Event-Driven, Serverless, and Cost-Effective Enterprise Message Bus ](https://www.youtube.com/watch?v=snuKfIaufP0)
- [Event-Driven Pub-Sub with SNS and SQS](https://www.youtube.com/watch?v=c_WNBmEc6EE)
- [GOTO 2017 • The Many Meanings of Event-Driven Architecture • Martin Fowler ](https://www.youtube.com/watch?v=STKCRSUsyP0)
- [GOTO 2018 • Pragmatic Event-Driven Microservices • Allard Buijze](https://www.youtube.com/watch?v=vSd_0zGxsIU)
- [Building Scalable Applications and Microservices: Adding Messaging to Your Toolbox](https://aws.amazon.com/blogs/compute/building-scalable-applications-and-microservices-adding-messaging-to-your-toolbox/)

Installation.
-------------

[](#installation)

### Laravel.

[](#laravel)

1. Install the package, `composer require amranidev/micro-bus`.
2. Publish the subscriber config file, `php artisan vendor:publish --tag=subscriber`.
3. Publish the publisher config file, `php artisan vendor:publish --tag=publisher`.
4. Add the subscriber and the publisher environment variables.

    - In the `.env` file add.

    ```
    # Standard SQS keys.

    SUBSCRIBER_SQS_KEY=
    SUBSCRIBER_SQS_SECRET=
    SUBSCRIBER_SQS_PREFIX=https://sqs..amazonaws.com/
    SUBSCRIBER_SQS_QUEUE=
    SUBSCRIBER_SQS_REGION=

    PUBLISHER_SNS_KEY=
    PUBLISHER_SNS_SECRET=
    PUBLISHER_SNS_REGION=

    # FIFO SQS Keys.

    SUBSCRIBER_FIFO_SQS_KEY=
    SUBSCRIBER_FIFO_SQS_SECRET=
    SUBSCRIBER_FIFO_SQS_PREFIX=https://sqs..amazonaws.com/
    SUBSCRIBER_FIFO_SQS_QUEUE=
    SUBSCRIBER_FIFO_SQS_REGION=

    # SNS Keys.

    PUBLISHER_SNS_KEY=
    PUBLISHER_SNS_SECRET=
    PUBLISHER_SNS_REGION=

    ```
5. Add the Queue connection configuration in `config/queue.php`.

    ```
    // Standard SQS configuration.

    'subscriber' => [
        'driver'      => 'subscriber',
        'key'         => env('SUBSCRIBER_SQS_KEY', 'your-public-key'),
        'secret'      => env('SUBSCRIBER_SQS_SECRET', 'your-secret-key'),
        'prefix'      => env('SUBSCRIBER_SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
        'queue'       => env('SUBSCRIBER_SQS_QUEUE', 'your-queue-name'),
        'region'      => env('SUBSCRIBER_SQS_REGION', 'us-east-1'),
        'retry_after' => 90,
    ],

    // FIFO SQS configuration.
    'subscriber-fifo' => [
        'driver'      => 'subscriber',
        'key'         => env('SUBSCRIBER_FIFO_SQS_KEY', 'your-public-key'),
        'secret'      => env('SUBSCRIBER_FIFO_SQS_SECRET', 'your-secret-key'),
        'prefix'      => env('SUBSCRIBER_FIFO_SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
        'queue'       => env('SUBSCRIBER_FIFO_SQS_QUEUE', 'your-queue-name'),
        'region'      => env('SUBSCRIBER_FIFO_SQS_REGION', 'us-east-1'),
        'retry_after' => 90,
    ],
    ```

Congratulations you have successfully installed **micro-bus** 🚀

### Lumen.

[](#lumen)

1. Install the package, `composer require amranidev/micro-bus`.
2. Add the subscriber and the publisher environment variables.

    - In the `.env` file add.

    ```
    SUBSCRIBER_SQS_KEY=
    SUBSCRIBER_SQS_SECRET=
    SUBSCRIBER_SQS_PREFIX=https://sqs..amazonaws.com/
    SUBSCRIBER_SQS_QUEUE=
    SUBSCRIBER_SQS_REGION=

    PUBLISHER_SNS_KEY=
    PUBLISHER_SNS_SECRET=
    PUBLISHER_SNS_REGION=

    ```
3. Create `config` folder in the root directory.
4. Create `subscriber.php` in the config folder.

```
