Weave 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

Outbox Bundle Laravel Package

micro-module/outbox-bundle

A Laravel bundle implementing the transactional outbox pattern: persist domain events to a database table inside the same transaction as your writes, then relay them reliably to queues or brokers. Avoids lost or duplicated messages when publishing fails, keeping event delivery consistent with commit...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Reliability strategy for event-driven roadmap items. The transactional outbox pattern eliminates the dual-write problem: business data and the event announcing it commit atomically, then relay asynchronously. This is a direct input to any feature where "we wrote the order but never published OrderPlaced" or "we published but the transaction rolled back" is a customer-visible failure — checkout, payments, inventory, provisioning, notification fan-out.
  • Build vs. buy vs. borrow for messaging plumbing. Deciding whether to hand-roll an outbox table plus relay worker, adopt a package, or push the guarantee into infrastructure (Debezium/CDC, broker-native transactional producers). This evaluation is concrete evidence for that decision, not a hypothetical.
  • Microservices / modular-monolith decomposition sequencing. If the roadmap includes extracting modules, a standardized outbox contract lets you defer broker guarantees and keep publishers simple. This package sits in the "enabling infrastructure" bucket that unblocks later decomposition work.
  • Risk budgeting on delivery guarantees. Explicitly choosing at-least-once with idempotent consumers over attempted distributed transactions. That choice shapes API contracts, consumer design, and on-call runbooks — and it's a decision worth naming, not inheriting by accident.
  • Supply-chain and dependency policy. At 0 stars, 0 dependents, and no release history, adopting this is effectively a "fork and own it" decision. That is itself a product-org decision that should be documented, not discovered in an incident review.

When to Consider This Package

Consider it if:

  • You want to learn or prototype the outbox pattern quickly in a Symfony/Doctrine context before committing to a first-party implementation.
  • You are prepared to read and audit the source, pin an exact version, and accept maintenance ownership (fork, security review, no upstream SLA).
  • You need a reference design to align the team on the pattern — table shape, relay semantics, retention, consumer idempotency — before building your own or buying a heavier tool.
  • Your team is small, throughput modest, and the target is an internal service rather than a tier-0 customer path.

Look elsewhere if:

  • You are Laravel-first. Despite the framing, this is a Symfony bundle (MicroModule\OutboxBundle, DI extension, Doctrine mapping, console relay command) — not a Laravel package. There is no service provider, facade, or publishable config. Treat Laravel compatibility as unproven; there are Laravel-native and framework-agnostic alternatives with real adoption.
  • You need battle-tested guarantees: zero stars and zero dependents means no production track record, no issue history, and no community to surface edge cases (poison messages, relay lag, ordering, cleanup).
  • Your scale or ordering requirements exceed a simple polling relay — evaluate CDC (Debezium), broker-native transactions, or a managed event bus.
  • You require vendor support, SLAs, or a security-review trail for procurement/compliance.
  • Event volume is low enough that a synchronous call with retries and an idempotency key is simpler and cheaper to operate.

Bottom line: it is a pattern-teaching artifact, not a production dependency for a Laravel shop — adopt only with an explicit fork-and-own plan, and only after confirming the Symfony internals port cleanly to your stack.

How to Pitch It (Stakeholders)

To executives: We are evaluating a small open-source component for the transactional outbox pattern — the mechanism that guarantees "if the database committed, the event was eventually published." It directly reduces a class of data-inconsistency incidents (lost notifications, orders without downstream fulfillment, silent billing gaps) that are expensive to debug and erode customer trust. Cost of a trial is a few engineering days. Honest framing: the package has no adoption and no maintainer commitment, and it is built for Symfony rather than our Laravel stack — so this is research to inform build-vs-buy, not a commitment to depend on it. Recommendation: time-boxed spike, decision memo, no production exposure until the spike passes.

To engineering: The pattern is correct and widely used; this specific implementation is unproven (0 stars, 0 dependents, no issue history) and Symfony-shaped, so we will be porting concepts — table schema, relay loop, retention policy — rather than installing a dependency. Treat it as a reference design and possible fork base. The spike should answer four questions: (1) does the relay handle failure, retry, and poison messages; (2) are at-least-once semantics and consumer idempotency actually enforced; (3) how does the outbox table grow, index, and purge; (4) what ordering guarantees exist per aggregate. If the design holds up, we own the code through a thin internal interface; if not, we implement the pattern ourselves against our existing broker. Either way we end with a documented, testable outbox contract that outlives this package.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource