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

Jobs Laravel Package

moox/jobs

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Filament Integration: Seamlessly extends Filament’s admin panel with job queue management (queues, failed jobs, batches), aligning with Laravel’s ecosystem while providing a UI-first approach. Ideal for teams already using Filament for admin interfaces.
  • Database-Driven Queues: Optimized for Laravel’s database queue driver (via queue:table). Complements Horizon but offers a lighter, UI-native alternative for teams avoiding Redis/SQS.
  • Batch Processing: Native support for Laravel’s job batches (introduced in Laravel 10+) with Filament-friendly visualization, reducing need for custom dashboards.
  • Modularity: Designed as a standalone package but integrates cleanly with the broader Moox ecosystem, offering future extensibility (e.g., Moox Auth, Notifications).

Integration Feasibility

  • Laravel Compatibility: Supports Laravel 10+ (confirmed by release date 2026-02-20). Assumes standard Laravel queue setup (e.g., QUEUE_CONNECTION=database in .env).
  • Filament Dependency: Requires Filament v3.x (check composer.json for exact version). May need Filament’s core plugins (e.g., filament/support) if not already installed.
  • Queue Driver Limitations:
    • Database: Full feature parity (queues, failed jobs, retries).
    • Redis/SQS/Beanstalkd: Limited support (see Limitations in README). Redis users may need Horizon for advanced features (e.g., real-time monitoring).
  • Migration Path: Minimal boilerplate if using moox:install (handles migrations, configs, and Filament plugins). Manual installation requires:
    • Publishing configs (php artisan vendor:publish --provider="Moox\Jobs\JobsServiceProvider").
    • Running migrations (php artisan migrate).
    • Registering Filament plugins in App\Providers\Filament\PanelProvider.

Technical Risk

  • Filament Version Lock: Risk of breaking changes if Filament upgrades its plugin system. Monitor Filament’s changelog for API shifts.
  • Redis/SQS Users: May require parallel Horizon setup for full observability. Evaluate whether Moox Jobs’ UI meets all monitoring needs (e.g., job throughput, worker stats).
  • Performance Overhead: Database queues add latency vs. Redis. Benchmark with expected job volume (e.g., 1000+ jobs/hour).
  • Custom Job Handling: Assumes standard Laravel jobs. Custom job classes or middleware may need adjustments for Filament UI rendering (e.g., job metadata display).

Key Questions

  1. Queue Driver Strategy:
    • Are you using database, Redis, or another driver? If Redis, how will Moox Jobs complement Horizon?
    • Do you need real-time monitoring (e.g., worker stats, job progress bars) that Horizon provides?
  2. Filament Adoption:
    • Is Filament already in use, or is this a new addition? If new, factor in developer ramp-up time.
  3. Batch Processing Needs:
    • Do you rely on Laravel’s batch jobs? Moox Jobs provides UI controls for batch operations (e.g., cancel, retry).
  4. Customization Requirements:
    • Will you need to extend the Filament UI (e.g., custom job columns, filters)? Check if Moox Jobs supports plugin hooks.
  5. Migration Impact:
    • Are you using a custom queue table? Moox Jobs may require schema adjustments (e.g., adding batch_id for batch support).

Integration Approach

Stack Fit

  • Ideal For:
    • Teams using Filament for admin panels and Laravel’s database queue driver.
    • Projects needing a lightweight alternative to Horizon without Redis/SQS dependencies.
    • Developers who prefer UI-driven queue management over CLI/tools like queue:work.
  • Less Ideal For:
    • Redis/SQS-heavy applications (use Horizon instead or supplement with Moox Jobs).
    • Teams requiring advanced queue metrics (e.g., job latency, worker health).
    • Projects with custom queue table schemas (may need schema migrations).

Migration Path

  1. Assessment Phase:
    • Audit current queue setup: driver, job classes, and monitoring tools.
    • Verify Filament version compatibility (target Filament 3.x).
  2. Installation:
    • Option A (Recommended): Use php artisan moox:install (if adopting Moox ecosystem).
    • Option B: Standalone install:
      composer require moox/jobs
      php artisan mooxjobs:install
      
    • Publish configs and run migrations.
  3. Configuration:
    • Update config/queue.php to use database driver if migrating from Redis/SQS.
    • Register Filament plugins in App\Providers\Filament\PanelProvider:
      public function panel(Panel $panel): Panel
      {
          return $panel
              ->plugins([
                  \Moox\Jobs\Filament\Plugins\JobsPlugin::make(),
              ]);
      }
      
  4. Testing:
    • Dispatch test jobs and verify UI visibility in Filament’s "Jobs" section.
    • Test batch operations (create, cancel, retry) if using Laravel batches.
  5. Phased Rollout:
    • Start with non-critical queues to validate UI and performance.
    • Gradually migrate critical jobs, monitoring failed job rates.

Compatibility

  • Laravel Jobs: Supports standard Laravel jobs (commands, mailables, etc.). Custom job classes should implement ShouldQueue and define a handle() method.
  • Batch Jobs: Native support for Laravel’s Illuminate\Bus\Batch (requires batch_id in queue table).
  • Failed Jobs: Integrates with Laravel’s failed_jobs table; provides Filament UI for retries/deletion.
  • Third-Party Packages: No known conflicts, but test with:
    • Laravel Telescope (may duplicate queue monitoring).
    • Custom queue listeners or middleware.

Sequencing

  1. Pre-requisites:
    • Laravel 10+.
    • Filament 3.x (core and plugins).
    • Database queue driver configured (or Redis/SQS with Horizon).
  2. Core Integration:
    • Install Moox Jobs → Configure Filament plugins → Test basic job visibility.
  3. Advanced Features:
    • Enable batch support (if needed) → Customize Filament UI (e.g., job columns).
    • Set up failed job notifications (Moox Jobs may support this via Filament notifications).
  4. Monitoring:
    • Implement logging for job failures (e.g., Laravel’s failed_jobs table).
    • Consider keeping Horizon for Redis users or adding custom metrics.

Operational Impact

Maintenance

  • Updates:
    • Follow Moox Jobs’ release notes for breaking changes.
    • Monitor Filament’s plugin system for API deprecations.
  • Dependencies:
    • Regularly update Laravel, Filament, and Moox packages to avoid compatibility drift.
    • Watch for Moox ecosystem updates (e.g., new Filament plugin features).
  • Backups:
    • Critical: jobs and failed_jobs tables. Include in database backups.
    • Test restore procedures for failed jobs/batches.

Support

  • Troubleshooting:
    • Queue Stuck Jobs: Use Filament UI to retry/cancel jobs; fallback to queue:flush or queue:retry CLI.
    • UI Issues: Clear Filament cache (php artisan filament:cache:clear) or check browser console for errors.
    • Performance: Optimize database queues with QUEUE_CONNECTION=database tuning (e.g., table, retry_after).
  • Documentation:
  • Community:
    • Limited activity (65 stars, no dependents). Issues may require direct outreach to maintainers.

Scaling

  • Database Queues:
    • Limitations: Not suitable for high-throughput systems (e.g., >1000 jobs/minute). Consider Redis/SQS + Horizon for scaling.
    • Optimizations:
      • Increase QUEUE_CONNECTION=database table size (e.g., jobs table indexes).
      • Use QUEUE_WORKER processes in parallel (e.g., QUEUE_WORKERS=4).
      • Implement job chunking for large batches.
  • Filament Performance:
    • Large job volumes may slow Filament’s UI. Implement pagination/filtering:
      \Moox\Jobs\Filament\Resources\JobResource::configureQuery()
          ->where('created_at', '>', now()->subHours(1));
      
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.
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
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