shipsaas / laravel-inbox-process
Inbox pattern process implementation for your Laravel Applications
Requires
- php: ^8.2
- ext-pcntl: *
- laravel/framework: ^10|^11|dev-master
Requires (Dev)
- fakerphp/faker: ^v1.20.0
- friendsofphp/php-cs-fixer: ^3.10
- mockery/mockery: ^1.6
- orchestra/testbench: ^8|^9
- phpunit/php-code-coverage: ^10
- phpunit/phpunit: ^10
README
Talking about distributed computers & servers, it is quite normal nowadays to communicate between servers.
Unlike a regular conversation though, there's no guarantee the message gets delivered only once, arrives in the right order, or even gets a "got it!" reply.
Thus, we have Inbox Pattern to help us to achieve that.
What is the Inbox Pattern
The Inbox Pattern is a popular design pattern in the microservice architecture that ensures:
- High availability ✅
- Guaranteed webhook deliverance, no msg lost ✅
- Guaranteed exactly-once/unique webhook requests ✅
- Execute webhook requests in ORDER/sequence ✅
- (Optional) High visibility & debug all prev requests ✅
And with that being said:
Laravel Inbox Process (powered by ShipSaaS) ships everything out-of-the-box and helps you to roll out the inbox process in no time 😎🚀.
Supports
- Laravel 10 & 11
- PHP 8.2+
- MySQL 8, MariaDB, Postgres 13+ and SQLite
Architecture Diagram
Installation
Install the library:
composer require shipsaas/laravel-inbox-process
Export config & migration files and then run the migration:
php artisan vendor:publish --tag=laravel-inbox-process php artisan migrate
Documentation & Usage
Visit: ShipSaaS Inbox Documentation
Best practices, usage & notes are well documented too 😎!
Testing
Run composer test
😆
Available Tests:
- Unit Testing 💪
- Integration Testing against MySQL & PostgreSQL for the
inbox:work
command 😎 - Human validation (lol) 🔥
ShipSaaS loves tests, we won't ship sh!tty libraries 🌹
Contributors
- Seth Phat
Contributions & Support the Project
Feel free to submit any PR, please follow PSR-1/PSR-12 coding conventions and testing is a must.
If this package is helpful, please give it a ⭐️⭐️⭐️. Thank you!
License
MIT License