ModQueue is a Laravel-based, multi-service system that simulates scalable, asynchronous content moderation — just like you'd find in large social platforms.
ModQueue is split into two independent services:
- Content API: Accepts and lists user-generated content.
- Moderation Worker: Asynchronously processes moderation using an AI mock service.
Together, they form a production-grade simulation of a microservice architecture with job queues, separation of concerns, and automated testing.
Key Technologies used:
- Laravel 12 (for both services)
- MySQL
- Nginx
- RabbitMQ
- Docker + Docker Compose
- PestPHP
Important
You must have Docker and Docker Compose installed on your machine.
- Clone the repository:
git clone https://github.com/benjamimWalker/modqueue.git- Go to the project folder:
cd modqueue- Prepare environment files:
cp content-api/.env.example content-api/.env && cp moderation-worker/.env.example moderation-worker/.env- Build the containers:
docker compose up -d- Install composer dependencies:
docker compose exec content-api-php composer install && docker compose exec moderation-worker composer install- Run the migrations:
docker compose exec content-api-php php artisan migrate- You can now execute the tests:
docker compose exec content-api-php php artisan test- And access the documentation at:
http://localhost:8080/docs/apiAnd also access RabbitMQ dashboard (username guest, password guest) at:
http://localhost:15672- Ultimately, to execute the moderation worker, run:
docker compose exec moderation-worker php artisan queue:workThe main features of the application are:
- Real-time queue-based communication using Laravel Jobs + RabbitMQ.
- Microservice-style separation between content handling and moderation logic.
- Full test coverage with PestPHP.
- Clean, maintainable Laravel 12 code with proper architecture.
[Benjamim] - [[email protected]] Github: @benjamimWalker



