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

Rabbit Bus Bundle Laravel Package

dimkabelkov/rabbit-bus-bundle

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Microservices/SOA Architecture: Enables event-driven communication between decoupled services (e.g., order processing, notifications, analytics) without direct API calls.
  • Scalability: Supports horizontal scaling via RabbitMQ’s queue-based load balancing (e.g., handling spikes in user-generated events like payments or subscriptions).
  • Roadmap: Accelerates development of modular systems by reducing inter-service dependencies (e.g., replacing REST/gRPC with async events for non-critical workflows).
  • Build vs. Buy: Avoids reinventing RabbitMQ integration for Symfony/Laravel; leverages existing bundles (emag-tech-labs/rabbitmq-bundle/php-amqplib) for core functionality.
  • Use Cases:
    • Real-time notifications (e.g., "Order shipped" → trigger email/SMS).
    • Data pipelines (e.g., "User logged in" → update analytics DB).
    • Resilience (e.g., retry failed payments via dead-letter queues).

When to Consider This Package

  • Adopt if:
    • Your system uses Symfony 4/5 or Laravel and needs event-driven SOA.
    • You prioritize decoupling over real-time consistency (e.g., eventual consistency is acceptable).
    • Teams are comfortable with RabbitMQ (setup/maintenance is not a blocker).
    • You need multi-consumer support (e.g., one service listens to all events, or granular per-event consumers).
  • Look elsewhere if:
    • You require exactly-once processing (RabbitMQ lacks native idempotency; consider Kafka or NATS).
    • Your events are highly complex (e.g., nested objects; prefer Protobuf/Avro over JSON).
    • You need built-in monitoring (this relies on Monolog; consider tools like Prometheus + Grafana).
    • Your stack is non-Symfony/Laravel (e.g., Node.js, Go).
    • You lack DevOps resources to manage RabbitMQ clusters.

How to Pitch It (Stakeholders)

For Executives: "This package lets us build a scalable, event-driven system where services communicate asynchronously via RabbitMQ—reducing coupling and improving resilience. For example, when a user places an order, we can fan out notifications, analytics, and inventory updates without blocking requests. It’s a lightweight alternative to custom message brokers, leveraging existing Symfony/Laravel bundles. Upfront cost: minimal (RabbitMQ setup); long-term gain: faster development and easier scaling of microservices."

For Engineering: *"The bundle abstracts RabbitMQ integration for Symfony/Laravel, offering two modes:

  1. Single consumer for all events (simpler setup, but less granular control).
  2. Per-event consumers (e.g., Service B only listens to OrderCreatedEvent). Events are defined in a shared repo (e.g., github.com/company/bus-events), ensuring consistency. We’d need to:
  • Add emag-tech-labs/rabbitmq-bundle (Symfony 5) or php-amqplib (Symfony 4).
  • Configure Monolog for event logging.
  • Define event classes extending AbstractEvent. Tradeoff: Zero reinvention, but we’ll own RabbitMQ ops (clustering, backups)."*
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.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle