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

Daemon Bundle Laravel Package

miksoftware/daemon-bundle

Miksoftware DaemonBundle provides a Symfony-friendly foundation for building long-running PHP daemon and worker commands, with structured loops, lifecycle handling, and graceful shutdown support for background jobs and queue processing.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for background process infrastructure. The package targets the same lifecycle concerns—bootstrapping, signal handling, graceful shutdown, restart loops, PID management—that teams otherwise hand-roll around symfony/process or supervisor. The decision it informs: do we write and maintain a few hundred lines of worker plumbing ourselves, or adopt a small, low-adoption dependency? Given the maturity signals here, hand-rolling or using framework-native tooling is the more defensible default.
  • Roadmap scoping for "daemon mode" feature requests. When a stakeholder asks for "always-on" or "scheduled background" behavior, this package is a useful reference point for distinguishing a genuine daemon requirement (long-lived, in-process state, custom signals, persistent connections) from a need already met by queues, cron, or the framework scheduler. Most product requirements fall into the latter bucket.
  • Architecture direction: queue-first vs. long-running workers. If the product roadmap includes streaming consumers, socket listeners, or polling loops where queue semantics (at-least-once, job-per-message) are awkward, daemon-style workers become a real architecture option worth evaluating—but the package itself is not the reason to pick that direction.
  • Vendor and dependency risk triage. With 5 stars, 0 dependents, and a NOASSERTION license, this sits firmly in the "do not place on the critical path" bucket. It's a concrete data point for calibrating how much internal ownership and legal effort any new dependency will require, and for setting a bar that future dependencies must clear.
  • Reference implementation / internal pattern library. Even if never adopted, the source can inform an internal daemon-runner convention: what signal registration, loop intervals, graceful shutdown, and PID handling should look like. That is the highest-value use of this package today.
  • Platform standardization decisions. If engineering proposes adopting this as a standard worker mechanism, the assessment supports a "no" with reasons: Symfony-oriented conventions, unresolved licensing, single-maintainer signal, and Laravel-native alternatives (Horizon, queue workers, Octane) that already cover the same ground.

When to Consider This Package

Consider it (as a source audit or time-boxed spike, not a dependency) only when all of the following hold:

  • The application is Symfony-based. The Bundle naming and namespace conventions point to Symfony bundle registration (DI extension, Kernel wiring), not a Laravel service provider. Verify this before assuming Laravel compatibility—there is no config/app.php entry, no vendor:publish, and no facade.
  • You have a genuine long-running worker requirement that queues don't model cleanly: signal-aware shutdown, in-process caches, persistent connections, or custom supervision loops. If the need is periodic rather than persistent, cron or the framework scheduler is simpler and cheaper.
  • Your team already owns process supervision (systemd, supervisor, Kubernetes) and only needs the in-process lifecycle layer. This package does not replace supervisors and does not solve horizontal scaling.
  • You have capacity to audit the source directly—composer.json constraints, DependencyInjection/, the base worker class, and shutdown semantics. At this maturity, code review is the due diligence.
  • Legal has cleared or can clear the NOASSERTION license for commercial use. Until then, treat it as unlicensed.

Look elsewhere when:

  • You're on Laravel. Use queue workers with --max-time, Horizon, or Octane. These already provide graceful shutdown, restarts, timeouts, and supervised operation. There is no reason to reach outside the framework, and the Symfony bundle conventions do not map onto Laravel's container.
  • The license remains unresolved. NOASSERTION means the terms are not machine-readable and may be ambiguous or incompatible with commercial redistribution.
  • You need support SLAs, CVE response, or a maintainer bus factor above one. Five stars and zero dependents is a single-maintainer signal; assume you may need to fork and own it.
  • The requirement is periodic, not persistent. Cron, the framework scheduler, or a queued job covers it with less operational cost.
  • You want a mature, widely deployed option. Symfony Messenger workers, Supervisor configs, or a well-maintained process manager cover the same ground with community backing and documented failure modes.

How to Pitch It (Stakeholders)

To executives: This is a small utility, not a platform bet. It could save a few days of boilerplate if we specifically needed signal-aware daemons on a Symfony stack, but the signals—unknown/ambiguous license, zero dependents, minimal adoption, no support path—mean we should treat it as a read-only reference rather than a dependency. There is no roadmap impact and no cost avoided that justifies the legal and maintenance overhead today. Recommendation: hold; re-evaluate in one to two quarters, watching for license clarification and adoption growth.

To engineering: If we're on Symfony and genuinely need long-running, signal-aware workers, this is worth a time-boxed source audit—it may consolidate plumbing we would otherwise write ourselves, and its graceful-shutdown and loop-interval patterns are worth borrowing regardless. If we're on Laravel, skip it: Horizon and queue workers already cover the use case, and the bundle conventions don't map onto Laravel's container or configuration model. If anyone does spike it, isolate it behind an internal abstraction so the runner can be swapped for Supervisor, Horizon, or a custom process manager later, and validate the failure modes first—SIGTERM/SIGINT handling, restart backoff, orphaned processes, memory growth over hours, and deploy-time race conditions.

Recommendation: Hold. Do not add as a dependency. Use it as a reference implementation for an internal daemon-runner convention, track license and maintainer activity, and revisit only if a concrete long-running worker requirement lands on the roadmap and legal has cleared the terms.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource