Weave Code
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

Broadway Bundle Laravel Package

ddd-module/broadway-bundle

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Adoption of Domain-Driven Design (DDD) patterns in Symfony applications, enabling cleaner separation of domain logic, application services, and infrastructure.
  • Event Sourcing architecture for auditability, replayability, and time-travel debugging—critical for compliance-heavy or stateful systems (e.g., financial, healthcare, or regulatory platforms).
  • Decoupling business logic from persistence, allowing teams to evolve storage backends (e.g., switch from SQL to event log databases) without rewriting core logic.
  • Roadmap for scalable microservices: Broadway’s event-driven model aligns with eventual consistency and CQRS patterns, reducing tight coupling between services.
  • Build vs. Buy: Avoids reinventing event sourcing wheels; leverages a battle-tested library (Broadway) with Symfony integration, reducing dev time and risk.
  • Use Cases:
    • Systems requiring immutable audit trails (e.g., transaction histories, user actions).
    • Applications needing to reconstruct state at any point in time (e.g., "as-of" reporting).
    • Projects where domain events are first-class citizens (e.g., workflow engines, IoT pipelines).

When to Consider This Package

  • Avoid if:
    • Your team lacks experience with event sourcing or DDD—steep learning curve for developers unfamiliar with aggregates, commands, and event stores.
    • You need real-time consistency (event sourcing introduces eventual consistency by design).
    • Your project is small-scale or CRUD-heavy (overkill for simple applications).
    • You’re constrained by performance (event stores can be slower than direct DB writes for high-throughput systems).
  • Look elsewhere if:
    • You require off-the-shelf Symfony UX (this is a backend-focused package; pair with API Platform or API Resource for frontend integration).
    • Your stack is non-Symfony (e.g., Laravel, Node.js)—consider Broadway’s native PHP package instead.
    • You need graph-like data relationships (Broadway is optimized for linear event streams; use Doctrine or Neo4j for graphs).
  • Consider if:
    • You’re building a long-lived, complex domain (e.g., SaaS platforms, ERP modules).
    • Your team values testability (event sourcing enables reliable time-travel tests).
    • You anticipate frequent schema changes (event sourcing decouples domain evolution from storage).

How to Pitch It (Stakeholders)

For Executives: *"This package lets us adopt event sourcing—a proven architecture for building resilient, auditable systems—with minimal reinvention. By leveraging Broadway (a battle-tested PHP library) and wrapping it for Symfony, we avoid vendor lock-in while gaining:

  • Regulatory compliance: Every state change is logged immutably (critical for finance/healthcare).
  • Future-proofing: Swap databases or services without rewriting business logic.
  • Scalability: Event-driven design naturally supports microservices and distributed systems. Upfront cost: A learning curve for the team (~3 months), but long-term savings in maintenance and flexibility. ROI: Reduced technical debt for complex domains."*

For Engineering: *"Broadway Bundle lets us:

  1. Decouple domain logic from persistence (write once, deploy anywhere).
  2. Replay events for debugging or reporting (no more ‘it worked yesterday’ mysteries).
  3. Integrate seamlessly with Symfony via Flex—just composer require and go. Tradeoffs:
  • Requires buy-in for DDD/event sourcing patterns.
  • Initial setup for event stores (but docs cover PostgreSQL, MongoDB, etc.). Alternatives: Rolling our own event store would take 6+ months; this cuts that to weeks. Next steps: Spike with a proof-of-concept (e.g., user account domain) to validate dev velocity."*
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.
aimeos/prisma
besmartand-pro/php-quality-config
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views