petitpress/gps-messenger-bundle
Google Pub/Sub transport for Symfony Messenger with zero extra dependencies beyond core Symfony and Pub/Sub libraries. Supports DSN and options config, automatic topic/subscription creation, message ordering via OrderingKeyStamp, dead letter policies, and keep-alive for long-running workers.
Architecture fit
gps:// transport for Symfony Messenger backed by Google Cloud Pub/Sub. It does not plug into Laravel's config/queue.php driver abstraction (redis, sqs, database, beanstalkd).description.md (GPS/Garmin tracking) does not match the actual scope (Pub/Sub transport). That drift is a documentation-quality signal and should be flagged to the team before onboarding.Integration feasibility
symfony/messenger, symfony/dependency-injection, Symfony bundle registration in config/bundles.php, and google/cloud-pubsub. Laravel 10/11 pin their own Symfony component versions, so composer resolution is the first real gate.messenger.yaml, bundle config), not Laravel's config/*.php. Bridging config or programmatic transport registration will be required.Technical risk
roles/pubsub.publisher / subscriber), key rotation, and audit of topic-level permissions.Key questions
google/cloud-pubsub calls?)Stack fit
google/cloud-pubsub directly or a thin adapter; this bundle runs on a dedicated Symfony consumer service (or isolated container) subscribing to the topic. This keeps Laravel's queue system untouched and bounds the blast radius.sqs driver (if AWS is viable), a custom Laravel queue driver wrapping the Pub/Sub SDK, or Redis/DB queues for internal jobs with Pub/Sub reserved for cross-service events.Migration path
Compatibility
google/cloud-pubsub. Confirm no conflict with Laravel's pinned Symfony components; resolve via a dedicated composer spike.Sequencing
Maintenance
composer.json; track Symfony Messenger and Google SDK changelogs for breaking changes.Support
messenger:consume -vvv, Cloud Logging, Pub/Sub metrics (oldest unacked message age, undelivered message count).Scaling
Failure modes
Ramp-up
How can I help you explore Laravel packages today?