Weave Code
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

Filament Jobs Monitor Laravel Package

croustibat/filament-jobs-monitor

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Queue Monitoring Alignment: The package provides a Horizon-like UI for monitoring background jobs, which is a critical gap in FilamentPHP’s ecosystem. It integrates seamlessly with Laravel’s queue system (all drivers: database, redis, sync, etc.), making it a direct replacement for Horizon in Filament-based applications.
  • FilamentPHP Integration: Built as a Filament plugin, it leverages Filament’s resource system, ensuring consistency in UI/UX with other Filament panels. This reduces cognitive load for developers familiar with Filament.
  • Extensibility: Supports custom job monitoring via Filament’s resource system, allowing teams to extend functionality (e.g., custom job metrics, bulk actions) without forking the package.
  • Database Dependency: Requires migrations for job tracking, which may introduce schema changes if not already using Laravel’s queue tables. This is a minor risk if the app already uses failed_jobs or similar tables.

Integration Feasibility

  • Low-Coupling Design: The package does not modify core Laravel/Filament logic; it only adds a monitoring layer. This minimizes merge conflicts during updates.
  • Filament Version Lock: Strict version compatibility (e.g., v1.x for Filament 2.x) ensures predictable integration, but may require parallel branch maintenance if upgrading Filament.
  • Queue Driver Agnostic: Works with all Laravel queue drivers, but real-time monitoring (e.g., Redis) may require additional setup (e.g., Laravel Echo/Pusher) for live updates.
  • Authentication/Authorization: Inherits Filament’s policy/gate system, so RBAC for job monitoring can be controlled via existing Filament permissions.

Technical Risk

Risk Area Severity Mitigation Strategy
Filament Version Lock Medium Test compatibility matrix early; plan for parallel branches if upgrading Filament.
Database Schema Changes Low Review migrations; ensure jobs/failed_jobs tables are compatible.
Performance Overhead Low Monitor query load on jobs table; optimize with indexing if needed.
Real-Time Limitations Medium For Redis/SQS, consider Laravel Echo or custom WebSocket integration.
Custom Job Metadata Medium Extend via Filament resources or custom job metadata serialization.

Key Questions

  1. Current Queue Monitoring: Does the app already use Horizon, a custom solution, or no monitoring? If Horizon is in use, what’s the migration effort to switch?
  2. Filament Version Strategy: Is the team on a fixed Filament version, or are frequent upgrades planned? This impacts package version selection.
  3. Real-Time Requirements: Are live job updates (e.g., progress bars) critical, or is periodic polling sufficient?
  4. RBAC Needs: Does the app require granular permissions (e.g., view-only vs. retry/cancel jobs)? Filament’s policy system can handle this, but custom logic may be needed.
  5. Custom Job Handling: Are there proprietary job payloads that need special formatting in the UI? The package supports customization but may require extensions.
  6. Scaling: Will the app process high-volume jobs? The package’s performance should be benchmarked under load (e.g., 10K+ jobs).

Integration Approach

Stack Fit

  • FilamentPHP: Native fit—designed as a plugin, leveraging Filament’s resource system for UI consistency.
  • Laravel Queue: Universal compatibility with all drivers (database, redis, sync, beanstalkd, etc.), but real-time features (e.g., live progress) may need additional tooling (e.g., Laravel Echo).
  • PHP Version: Requires PHP 8.1+, aligning with modern Laravel/Filament stacks. Downgrades may be needed for legacy systems.
  • Database: Assumes Laravel’s default queue tables (jobs, failed_jobs). Custom queue tables will require configuration adjustments.
  • Authentication: Integrates with Filament’s auth system (e.g., Spatie Laravel-Permission, Breeze, Jetstream). No additional auth layer needed.

Migration Path

  1. Pre-Integration Checks:
    • Audit current queue monitoring (if any) and identify gaps (e.g., lack of UI, manual logging).
    • Verify Filament and PHP version compatibility (see README table).
    • Ensure database schema supports the package’s migrations (or plan for custom table adjustments).
  2. Installation:
    composer require croustibat/filament-jobs-monitor
    php artisan vendor:publish --tag="filament-jobs-monitor-migrations"
    php artisan migrate
    php artisan vendor:publish --tag="filament-jobs-monitor-config"  # Optional: Customize settings
    
  3. Configuration:
    • Publish and edit config/filament-jobs-monitor.php for:
      • Job retention policies (e.g., purge old jobs).
      • Custom resource labels/icons.
      • Queue driver-specific settings (e.g., Redis connection).
  4. Testing:
    • Unit Tests: Verify job monitoring logic (e.g., job listing, filtering).
    • UI Tests: Check Filament resource routes (/jobs-monitor) and interactions (e.g., retry, delete).
    • Performance: Load-test with 1K+ jobs to validate query performance.
  5. Deployment:
    • Roll out in stages (e.g., non-production first) to monitor for:
      • Database query bottlenecks.
      • UI rendering issues (e.g., large job payloads).
      • Permission errors.

Compatibility

Component Compatibility Notes
FilamentPHP Strict version pinning (e.g., v1.x for Filament 2.x). Upgrades require testing.
Laravel Queue All drivers supported, but real-time features need additional setup (e.g., Echo).
Database Defaults to Laravel’s jobs table. Custom tables require config overrides.
Authentication Uses Filament’s auth; no additional setup unless custom policies are needed.
Custom Jobs Supports custom metadata but may need serialization adjustments for complex payloads.

Sequencing

  1. Phase 1: Core Monitoring (2–4 weeks)
    • Install and configure the package.
    • Test basic CRUD (list, retry, delete jobs).
    • Validate against existing queue workflows.
  2. Phase 2: Advanced Features (1–2 weeks)
    • Implement custom job metadata display (if needed).
    • Add real-time updates (if using Redis/SQS).
    • Configure alerts (e.g., Slack notifications for failed jobs).
  3. Phase 3: Optimization (Ongoing)
    • Monitor database performance; add indexes if needed.
    • Adjust job retention policies based on volume.
    • Extend with custom Filament resources for niche use cases.

Operational Impact

Maintenance

  • Vendor Updates: The package is actively maintained (last release: 2026-04-20), but Filament version locks may require parallel branches.
    • Strategy: Pin to a stable version (e.g., ^2.0) and monitor changelogs for breaking changes.
  • Dependency Conflicts: Low risk—package is isolated to Filament plugins. Conflicts likely only with other queue-related packages (e.g., Horizon).
  • Configuration Drift: Centralized config file (filament-jobs-monitor.php) reduces drift risk. Use environment variables for sensitive settings (e.g., job retention).

Support

  • Troubleshooting:
    • Common Issues:
      • Job not appearing? Check queue driver connection and queue:work processes.
      • Slow UI? Optimize jobs table indexes or increase memory_limit.
      • Permissions errors? Verify Filament policies for the jobs-monitor resource.
    • Debugging Tools:
      • Laravel’s queue:failed and queue:flush commands.
      • Package logs (storage/logs/laravel.log).
  • Community: 261 stars and MIT license suggest moderate community support. Issues are likely resolved via GitHub or Filament’s discourse.
  • SLAs: No guarantees—treat as open-source support. Plan for internal documentation of workarounds.

Scaling

  • Database Load:
    • The package queries the jobs table. For high-volume queues (>10K jobs/day):
      • Add indexes on queue, failed_at, and attempts.
      • Consider archiving old jobs (configurable via config['retention']).
      • For Redis/SQS, ensure the queue backend is scaled (e.g., Redis cluster).
  • UI Performance:
    • Large job lists may slow Filament. Implement:
      • Pagination (default in Filament).
      • Lazy-loading for job details.
      • Search/filtering (built-in via Filament resources).
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.
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope