Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Pbjx Laravel Package

gdbots/pbjx

PBJx is a PHP library for building message-driven GDBots applications. It extends PBJ with schema-based messages, validation, serialization, and command/query/event handling to support reliable service communication and workflow processing.

View on GitHub
Deep Wiki
Context7

Messaging tools for php.

Frequently asked questions about Pbjx
What is gdbots/pbjx used for?
gdbots/pbjx is the messaging layer for GDBots PBJ applications in PHP. It provides command, event, and request buses with schema-aware routing, a middleware pipeline, and a transport-agnostic dispatch lifecycle. It is designed to pair with gdbots/pbj schema-defined messages rather than to serve as a general-purpose Laravel package.
Does gdbots/pbjx work with Laravel out of the box?
No. gdbots/pbjx ships no Laravel service provider, facade, or publishable config, and its conventions lean toward Symfony. You can use it in Laravel, but you must write and own the container bindings, bus wiring, transport configuration, and exception-to-HTTP mapping yourself. Expect a custom bridge package rather than a drop-in integration.
How do I install gdbots/pbjx with Composer?
Install it with composer require gdbots/pbjx, then add the PBJ schema build step and generated message classes your application needs. There is no artisan install command or config publishing, so plan to wire buses and dispatchers manually in a service provider. Check the package Composer constraints against your Laravel and Symfony component versions before committing.
Do I need gdbots/pbj to use gdbots/pbjx?
Yes. pbjx operates on PBJ schema-defined messages and generated message classes, so gdbots/pbj and its schema tooling are prerequisites. Without a schema build step producing those classes, the buses have nothing schema-aware to route. Treat the schema toolchain as part of the integration cost, not an optional extra.
How does the gdbots/pbjx command bus dispatch lifecycle work?
A dispatched command is routed by message schema through a dispatcher into the appropriate handler, passing through a middleware pipeline for validation, logging, and other cross-cutting concerns. Enrichers, listeners, and subscribers hook into the lifecycle so business logic stays decoupled from transport. The same pattern applies to event and request buses, keeping dispatch behavior predictable across message types.
What transports does gdbots/pbjx support?
gdbots/pbjx is transport-agnostic: the core library defines abstractions, and concrete transports such as in-memory, SQS/SNS, or RabbitMQ live in separate packages. Before relying on one in production, confirm it is actually implemented and hardened in the upstream ecosystem. For a first Laravel spike, an in-memory transport is the safest way to validate message round-trips.
Is gdbots/pbjx a replacement for Laravel's event dispatcher or queues?
Only in a genuinely CQRS or event-sourced architecture where schema-contracted messages are shared across services. For a conventional Laravel monolith, pbjx duplicates what Laravel's event dispatcher, queue workers, and broadcasting already provide while adding a schema toolchain and message lifecycle. If you adopt it, do not run pbjx events and Laravel events as parallel sources of truth over the same state.
How do I test gdbots/pbjx message handling in a Laravel application?
Use an in-memory transport and dispatch commands, events, and requests directly from PHPUnit tests, asserting that the expected handlers and subscribers run. Verify that the PBJ schema build is reproducible in CI so generated message classes do not drift. Keep tests at the bus boundary so handler logic can be exercised without a real transport.
Is gdbots/pbjx actively maintained and safe for production?
It is an Apache-2.0 library published by a single vendor with essentially no public consumer base, so adoption risk is high even if code quality is fine. Pin a specific version and vendor the dependency so an upstream stall does not break builds. Have a fallback plan, such as forking under Apache-2.0 or replacing it with Symfony Messenger or Ecotone.
Which PHP and Laravel versions are compatible with gdbots/pbjx?
Assume PHP 8.1+ and a modern Laravel 10, 11, or 12 application, but verify the actual Composer constraints in the package. Its dependencies on Symfony components can conflict with versions pinned by Laravel, so run a dependency resolution test before committing. There is no published Laravel compatibility matrix or CI pipeline to rely on.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console