tarfin-labs/event-machine
Event Machine is a Laravel package for event-driven architecture, offering a clean, structured API for defining and dispatching domain events, wiring up listeners, and keeping business logic decoupled, testable, and easy to extend.
MachineTimer::register() now shell-escapes the namespaced class option, matching the existing behavior of MachineScheduler::register(). The fix is internal and does not change the public API or defaults, so architectural fit remains strong for Laravel applications already using Artisan and routes/console.php.MachineTimer::register() calls and fluent overrides remain unchanged. The practical integration effort is operational: validating that timer machines are actually scheduled, and planning how overdue timers should behave on first deploy./dev/null. On upgrade, every overdue after timer fires on the first sweeps, regardless of age, which can trigger unintended state transitions. An overdue every timer fires once, not once per missed interval. Backlog drains at timers.batch_size (default 100) per timer per sweep. Secondary risk: machine:validate --all will now fail CI for timer machines missing from routes/console.php, which is correct but may block pipelines until schedule entries are added.timers.batch_size, and should batch size be tuned? Is machine:validate --all already part of CI, and who owns fixing failures? How will we monitor sweeps now that the silent-failure path is fixed? Are there timers whose semantics depend on “never having fired” such that a first fire would be unsafe?routes/console.php. The release directly addresses scheduler shell-quoting behavior without introducing new dependencies or configuration formats. It also adds a validation command that aligns with CI and local artisan workflows.php artisan machine:validate --all in an artisan context where routes/console.php is loaded. Add any missing machine:process-timers schedule entries named by the validator. Before or immediately after deployment, inspect overdue timer instances and decide whether to let them fire or move them out of timer state. No code changes are required.machine:validate --all in CI and periodic review of timer schedule entries. Documentation has been corrected to stop claiming auto-registration, reducing false assumptions.MachineTimer::register() line to add.timers.batch_size (default 100) per timer per sweep. Large installations with many overdue instances should estimate drain time and decide whether to adjust batch size or manually clear unsafe timer states. Because overdue every timers fire once rather than once per missed interval, burst risk is lower than it might appear, but after timers can still produce a one-time surge./bin/sh, causing Class "AppMachinesOrderMachine" not found errors sent to /dev/null. The fix removes that specific failure. Remaining failure modes include missing schedule entries, which the validator now catches, and runtime sweep errors, which should be monitored through scheduler logs rather than discarded. Teams should ensure scheduler output is retained and alerted on.after vs. every), the consequences of a long-unrunning sweep, and the need to validate schedule registration in the same environment where routes/console.php is loaded. A short runbook covering backlog policy, validation, and sweep monitoring is sufficient.How can I help you explore Laravel packages today?