- What is micro-module/broadway-saga and what problem does it solve?
- It is a Laravel micro-module wrapper that brings the Saga pattern to Broadway-based event-sourced applications. Sagas act as long-running process managers that react to domain events, track their own state, and dispatch follow-up commands so multi-step business workflows stay decoupled across aggregates. It keeps orchestration logic out of your aggregates and makes workflows resumable and testable.
- How do I install micro-module/broadway-saga in a Laravel application?
- You install it with Composer, and Laravel package auto-discovery registers a service provider that binds saga repositories and an event bus into the container, plus presumably a config file. The wrapper is small; the real setup work is underneath it, since you need Broadway already wired into your application. Because the package is unmaintained, fork it into your own VCS and require it via a vcs or path repository with a pinned commit rather than a floating Packagist constraint.
- Does micro-module/broadway-saga support Laravel 10, Laravel 11, and PHP 8.2 or newer?
- That is unverified. The package has a single release dated 2021-09-07, so its composer constraints almost certainly predate Laravel 10 and 11 and PHP 8.2. Check the composer.json constraints for php, illuminate/*, broadway/broadway, and doctrine/dbal before attempting an install, and expect service-provider and container-binding compatibility to need testing.
- Can I use micro-module/broadway-saga with spatie/laravel-event-sourcing or without Broadway?
- No. This package is a Laravel wrapper around Broadway and only fits an application that has already committed to Broadway as its event-sourcing backbone, or one willing to adopt it wholesale. It is not a general-purpose workflow or orchestration tool and does not compose with spatie/laravel-event-sourcing, Laravel queue batching, or external orchestrators such as Temporal or Camunda.
- Where does micro-module/broadway-saga store saga state, and does it ship Eloquent models or migrations?
- Broadway saga state is stored through a SagaStateRepository, and the upstream implementation is Doctrine DBAL-oriented with a per-saga table and a version or lock column for optimistic concurrency. That is an impedance mismatch in an Eloquent-first stack. There is no evidence of shipped migrations or an Eloquent adapter, so expect to register a raw PDO or DBAL connection or write your own repository implementation.
- How do I test sagas defined with this package?
- Saga definitions are described as simple and testable, and the pattern is naturally unit-testable: feed a saga a domain event and assert the commands it dispatches and the state it records. A full integration test should exercise persistence, the event bus wiring, and the state repository under your real database. Whether the package ships its own test suite and CI is unverified, so confirm that before relying on it.
- Does micro-module/broadway-saga handle compensation, retries, timeouts, and failure handling?
- The package advertises built-in compensation and failure handling for multi-step workflows. Timeouts, retries and backoff, and dead-letter handling are not clearly documented and may live in the upstream broadway/broadway-saga dependency or be absent by design. Verify what the wrapper actually adds versus what it inherits before designing your failure strategy around it.
- Is micro-module/broadway-saga safe and maintained enough for production?
- Treat it as high risk. It has zero stars, zero dependents, a single 2021 release, and a namespace that suggests an internal or experimental module, and it wraps an upstream Broadway project with low activity. The practical posture is to fork it, pin the exact upstream commit, and audit the small codebase yourself rather than installing it unread or from a floating constraint.
- What exactly does micro-module/broadway-saga add over broadway/broadway-saga?
- It appears to be a thin Laravel integration: a service provider, container bindings for saga repositories and the event bus, and likely a config file. Whether it also changes saga dispatch, state handling, or compensation behavior is unclear from the overview. Confirm whether it is a fork of broadway/broadway-saga, at what upstream commit, and whether it has diverged.
- What are the alternatives for orchestrating multi-step Laravel workflows with compensation?
- If Broadway is not already your event-sourcing backbone, a queue-driven state machine is cheaper to own: Laravel jobs plus an explicit saga_state table and idempotency keys. External orchestrators such as Temporal or Camunda are another option when workflows are long-running and cross-service. Use broadway-saga only when the service is genuinely event-sourced on Broadway; otherwise read this package as a reference implementation, not a dependency.