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.
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.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.Consider it (as a source audit or time-boxed spike, not a dependency) only when all of the following hold:
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.composer.json constraints, DependencyInjection/, the base worker class, and shutdown semantics. At this maturity, code review is the due diligence.NOASSERTION license for commercial use. Until then, treat it as unlicensed.Look elsewhere when:
--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.NOASSERTION means the terms are not machine-readable and may be ambiguous or incompatible with commercial redistribution.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.
How can I help you explore Laravel packages today?