- Is gdbots/ncr-bundle a Laravel package?
- No. gdbots/ncr-bundle is a Symfony bundle that provides a DI extension, configuration tree, and service definitions for the gdbots/ncr library, so it will not slot into Laravel's service container without custom wiring. If you are building on Laravel, a Laravel-native command bus or Symfony Messenger is a far better fit than adopting gdbots conventions.
- How do I install gdbots/ncr-bundle in a Symfony application?
- Install it with Composer, register the bundle in config/bundles.php, add a gdbots_ncr configuration block, and set environment variables for the transport endpoint. Mechanically the install is low friction, but the real work is provisioning a NATS broker and a PBJ schema/codegen pipeline that produces the PHP message classes the bundle expects. Verify the Symfony and PHP constraints in composer.json before starting.
- What prerequisites do I need before adopting gdbots/ncr-bundle?
- You need a running NATS 2.x or compatible broker, a PBJ protobuf schema and codegen step that generates PHP message classes, and version-aligned sibling gdbots packages such as pbjx and pbj. Your application must also be the composition root for a Symfony kernel, since the bundle will not fit into a legacy non-Symfony service or a framework-agnostic shared library. Teams without protobuf experience should budget one to two weeks for an integration spike.
- Can I test gdbots/ncr-bundle without a running NATS broker?
- The documentation does not confirm whether the transport abstraction is pluggable or whether an in-memory or synchronous transport exists for CI. Inspect the service definitions to see if the client is injected through an interface you can replace, and if not, mock the NCR client services in the test container. Confirm the testing story before committing, since broker-dependent test suites slow CI and make unit tests brittle.
- How does gdbots/ncr-bundle compare with Symfony Messenger?
- Symfony Messenger is a general-purpose message bus with broad adoption, multiple transports, and a well-documented testing story. gdbots/ncr-bundle is a thin integration layer over NCR, a command-routing system built around gdbots PBJ protobuf messages and NATS-style transport semantics. Choose NCR only if you are already committed to the gdbots protocol conventions; otherwise Messenger is the lower-risk default.
- Which Symfony and PHP versions does gdbots/ncr-bundle support?
- Do not infer compatibility from the release date alone. Read the actual constraints in composer.json and check them against your target of PHP 8.1+ and Symfony 6.4 or 7.x LTS. Because the gdbots packages tend to move in lockstep, a partial upgrade is a common source of DI compile failures and runtime type mismatches.
- Is gdbots/ncr-bundle actively maintained?
- Adoption signal is essentially zero, with no stars or dependents and a maintainer base of one organization. Treat it as a private package that happens to be published publicly rather than as a community-supported dependency. There is no visible support policy or security process, so CVE response and upgrade work would fall entirely to your team.
- What happens if the NATS broker is unreachable when using gdbots/ncr-bundle?
- Failure behavior is not documented, so you must test whether the bundle fails fast, buffers, or silently drops commands when the transport is down. Determine this before production and wrap publishing behind your own interface so you can add retries, buffering, or alerting. Also establish whether NCR guarantees at-least-once or at-most-once delivery and which idempotency primitives the bundle exposes.
- How do I avoid lock-in when using gdbots/ncr-bundle?
- Define an internal CommandBus and EventPublisher interface owned by your team, implement it with NCR, and make every other module depend on the interface rather than on gdbots classes. Keep the bundle at the edge of the architecture, in one deployable and one bounded context, instead of threading PBJ message types through shared domain code. Pilot a single low-risk asynchronous flow first; that seam preserves an exit to Symfony Messenger.
- How are PBJ message classes generated for gdbots/ncr-bundle?
- PBJ message classes come from a protobuf schema and codegen pipeline that must be version-aligned with the bundle and its sibling gdbots packages. Put that codegen step in CI so generated classes are reproducible and never drift from the installed bundle version. Confirm whether the bundle resolves classes at build time or dynamically at runtime, because that determines where codegen has to live.