Transactional Outbox Pattern for Laravel
"PHPOutbox brings the Transactional Outbox Pattern to Laravel, solving the "dual-write" problem where a DB transaction succeeds but the event dispatch fails due to network drops or queue downtime.
By persisting events in the same DB transaction as your business data, PHPOutbox ensures absolute consistency. If the data saves, the event saves. A background relay then handles guaranteed at-least-once delivery to your message broker.
- Native DX: Includes a Service Provider, Outbox Facade, and Laravel auto-discovery. Artisan
- Commands: Use php artisan outbox:relay to process events and outbox:prune to keep tables lean. Concurrency-Safe: Uses SKIP LOCKED (MySQL 8+/Postgres) to run multiple relay workers simultaneously without collisions.
- Resilient: Built-in retries with exponential backoff and a Dead Letter Queue (DLQ).
- Modern: Built for PHP 8.2+ with UUIDv7/ULID support.
Stop losing events today! Fully built with PHP and support laravel natively."