benjamin-rqt/data-watcher-bundle
WatcherInterface), allowing domain-specific logic (e.g., "alert if user_activation_rate drops below 5%").cron + cron-expression).WatcherInterface?MessengerTransport, Mailer).spatie/scheduler or laravel-schedule).doctrine/orm, symfony/messenger).users or transactions).count(*) = 0").Mailer integration.dragonmantank/cron-expression + cron jobs to trigger checks.framework.scheduler in config/packages/framework.yaml.Mailer (supports Twig templates). Custom transports (e.g., SMTP, API-based) require mailer_transport config.BenjaminRqt\DataWatcherBundle\Watcher\WatcherInterface for bespoke rules.doctrine/orm and symfony/messenger are installed.data_watcher.yaml and messenger.yaml.messenger:consume (async) or direct calls (sync).@hourly).messenger:failed-messages).composer.json.from_email deliverability (e.g., SPF/DKIM).messenger:failed-messages.Xdebug.var/log/dev.log (Symfony default).messenger:consume async) for high-volume checks.messenger:status).max_emails_per_hour).| Failure Point | Impact | Mitigation |
|---|---|---|
| Database unavailable | Missed anomalies | Retry logic in watchers (e.g., exponential backoff). |
| Email service down | Unsent alerts | Fallback to Slack/console logs. |
| Messenger queue overload | Delayed notifications | Scale workers or reduce check frequency. |
| Cron scheduler fails | Checks not triggered | Hybrid approach: cron + health checks. |
| Custom watcher bug | False positives/negatives | Unit tests for watcher logic. |
How can I help you explore Laravel packages today?