simple-bus/asynchronous
Generic PHP classes and interfaces for processing messages asynchronously with a SimpleBus MessageBus. Provides building blocks to queue, publish, and handle messages outside the request cycle; integrates with SimpleBus components and documented usage guides.
Illuminate\Events) but provides a more generic, bus-based alternative for complex workflows.queue:work), this package offers higher-level abstractions (e.g., message dispatching, retries, middleware) that could reduce boilerplate for multi-step async processes.database, redis, beanstalkd) as the underlying transport layer.AppServiceProvider).queue:table). No built-in persistence layer—must be configured separately.SimpleBus\MessageBus) may be required.dispatch() + HandleJobs may need to adapt to message handlers and bus middleware.json_encode/json_decode). Complex objects (e.g., Eloquent models) may require custom serialization.queue:listen?event(new OrderCreated()) with bus->dispatch(new OrderCreatedMessage()) for async processing.dispatch(new SendEmailJob()) with bus->dispatch(new EmailMessage()).$bus = new SimpleBus\Asynchronous\MessageBus(
new SimpleBus\Asynchronous\Redis\RedisMessageStorage($redis),
new SimpleBus\Asynchronous\Redis\RedisQueue($redis),
new SimpleBus\MessageBus\MessageBus(
new SimpleBus\MessageBus\Middleware\CreateBus(new SimpleBus\MessageBus\Middleware\MiddlewareStack([]))
)
);
$queue = new SimpleBus\Asynchronous\Database\DatabaseQueue(
new Illuminate\Database\DatabaseManager()
);
Event::dispatch() to bus->dispatch() for async events.dispatch(new Job()) with bus->dispatch(new Message()) where async is required.artisan process:async).OrderCreatedMessage) for all async operations.class OrderCreatedMessage implements SimpleBus\Message\Message {
public function __construct(public int $orderId) {}
}
$bus->subscribeTo(OrderCreatedMessage::class, new HandleOrderCreated());
$middlewareStack = new SimpleBus\MessageBus\Middleware\MiddlewareStack([
new SimpleBus\MessageBus\Middleware\RetryMiddleware(),
new SimpleBus\MessageBus\Middleware\LogMiddleware(),
]);
php artisan simplebus:consume
queue:work if using the same backend.HandleJobs, just message handlers).queue:failed table + SimpleBus logs.How can I help you explore Laravel packages today?