keboola/messenger-bundle
A Symfony bundle that integrates Keboola Messenger into PHP applications, wiring its messaging services into the Symfony container and simplifying configuration for sending and handling messages in projects that use Keboola’s messaging components.
platform setting (aws / azure / gcp) selects the correct serializer, so a single product codebase can ship to SQS/SNS, Event Grid/Service Bus, and Pub/Sub deployments. This directly supports a roadmap decision to run the same service on multiple clouds rather than forking per cloud.Adopt when:
platform unset the extension returns early and registers nothing, so the dependency can be added to a shared codebase ahead of the feature that uses it.keboola/platform-libraries monorepo, and your release cadence is coupled to that monorepo's green builds.Look elsewhere when:
prependExtension(); this is a deploy-time decision, not a runtime one.provisioning/ Terraform setup. If you intend to fork or extend, account for that infrastructure cost; the offline suite does not cover the paths you would be changing.Two footguns to flag before committing:
client_config explicitly in transport options or the DSN disables the default timeouts entirely rather than merging with them. Anyone overriding it takes on the blocking-forever risk the decorator exists to prevent.To executives: This is a small, MIT-licensed Symfony bundle that lets our services consume Keboola platform events from any of the three major clouds by changing one configuration value instead of writing cloud-specific integration code. It ships with sensible production defaults — notably connection timeouts that prevent a dead queue from hanging a worker indefinitely — and it is inert until we explicitly enable it, so it can be adopted incrementally with no risk to existing deployments. The strategic value is that our multi-cloud roadmap stops requiring a per-cloud integration effort. The honest caveats: it is an internal Keboola library published only for package installation, with no external user base and no support contract; fixes route through Keboola's monorepo rather than a repository we can merge into; and it handles event consumption, not the broader concerns of retry policy, dead-lettering, or observability, which remain our work.
To engineering: Adopt it as the transport and serialization layer for Keboola event consumption. Configuration happens at container-build time via prependExtension(), so platform is a deploy-time decision and environment placeholders are resolved early — do not expect per-tenant switching. The platform enum is the single switch; with it unset the bundle registers nothing. Incoming events always arrive as an EventInterface through the audit-log or application-event factories, with unknown names falling back to generic classes — design your handlers accordingly, and note that adding a typed class for a previously-generic event is a breaking change for type-matching handlers. If you need to contribute, open PRs against keboola/platform-libraries under libs/messenger-bundle/; PRs against the mirror will be closed. Be aware that the queue-consumption tests need real provisioned cloud queues, and that overriding client_config silently drops the default REST and connect timeouts rather than merging with them.
How can I help you explore Laravel packages today?