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

Ddd Symfony Bundle Laravel Package

alexandrebulete/ddd-symfony-bundle

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Architectural Alignment with DDD: Enables a modular Symfony monolith or microservices-ready structure by isolating bounded contexts (e.g., Post/, User/) with auto-imported services, routes, and configurations. Reduces merge conflicts and improves team autonomy.
  • Roadmap for Scalability: Supports gradual decomposition into microservices by encapsulating contexts in self-contained packages. The DddKernel abstraction simplifies future extraction.
  • Build vs. Buy: Avoids reinventing Messenger integration, context isolation, and DDD boilerplate while allowing customization (e.g., overriding messenger.yaml or kernel methods).
  • Use Cases:
    • Large-scale Symfony apps requiring DDD discipline (e.g., e-commerce, SaaS platforms).
    • Teams adopting DDD but needing Symfony-specific tooling (e.g., auto-registered handlers, context-aware routing).
    • Admin UX improvements: Stimulus-based autocomplete reduces frontend dev effort for searchable entities (e.g., user/role selection).
    • Event-driven workflows: Messenger’s command.bus/query.bus separation aligns with CQRS patterns.

When to Consider This Package

  • Adopt if:
    • Your primary stack is Symfony 7/8 and you’re committed to DDD principles.
    • You need zero-boilerplate context isolation (auto-imported services/routes per BC) without manual config/ merges.
    • Your team prioritizes developer experience (e.g., annotation-driven handler registration, Stimulus autocomplete).
    • You’re building a modular monolith or planning a microservices migration and want to avoid context leakage.
    • You require Messenger integration for async commands/queries with clear separation (vs. Laravel’s Queues).
  • Look elsewhere if:
    • You’re using Laravel (consider alternatives like spatie/laravel-domain or custom packages).
    • Your DDD needs are minimal (e.g., no bounded contexts or CQRS).
    • You need enterprise-grade DDD tooling (e.g., event sourcing, sagas) beyond this bundle’s scope.
    • Your team lacks Symfony expertise or prefers framework-agnostic solutions (e.g., PHP libraries for DDD).
    • You require high adoption/maturity (this bundle has 12 stars; evaluate alternatives like api-platform for DDD in Symfony).

How to Pitch It (Stakeholders)

For Executives: "This bundle accelerates our DDD adoption in Symfony by automating context isolation—each domain (Post, User) manages its own services, routes, and commands without manual configuration merges. It reduces technical debt for modular architectures and aligns with our microservices roadmap. The included Stimulus autocomplete improves admin tooling with minimal effort, while the command/query bus separation ensures scalable, maintainable code. Tradeoff: It’s Symfony-specific, but it eliminates reinventing DDD infrastructure."

For Engineering: *"The bundle provides:

  • DDD out of the box: Auto-imports services/routes per bounded context (e.g., src/Post/Infrastructure/Symfony/), reducing boilerplate.
  • Messenger integration: Command/Query buses with #[AsCommandHandler]—no manual DI setup. Supports CQRS and async workflows.
  • Modern UX: Stimulus-powered autocomplete for admin forms (no jQuery).
  • Extensibility: Override kernel/configs or Messenger middleware as needed. Caveats:
  • Symfony-only: Not compatible with Laravel (would need custom adaptation).
  • Low adoption (12 stars): Evaluate for long-term support, but it’s a lightweight, opinionated solution for Symfony teams. Alternatives: For Laravel, consider spatie/laravel-domain or building custom packages. For broader DDD needs, assess api-platform or ddd-php.*

For Architects: *"This bundle enforces DDD boundaries at the Symfony framework level, which is critical for:

  1. Context isolation: No accidental coupling between Post/ and User/ domains.
  2. Scalability: Auto-imported configs simplify future microservice extraction.
  3. Consistency: Standardized Messenger buses for commands/queries reduce architectural drift. Risk: The bundle’s tight Symfony coupling may limit portability, but it’s a net win for teams deeply invested in Symfony and DDD."*
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
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