blomstra/flarum-redis
Integrates Redis with Flarum to boost forum performance and scalability. Provides Redis-backed cache, session, and queue drivers plus configuration helpers for connecting Flarum to a Redis server.
Scope correction that drives everything else. This is not a Laravel package. blomstra/flarum-redis is a Flarum extension (a Composer-installed plugin for the Flarum forum application). Flarum is built on a subset of Laravel's Illuminate components (cache, queue, database, events, validation), so the operational overlap with a Laravel stack is real, but there is no code-level reuse and no composer require into an existing Laravel app. Any evaluation premised on "we can leverage this in our Laravel services" is wrong. The correct framing is: "We run Flarum; do we adopt this extension to move cache and queue onto Redis?"
Architecture fit. The extension's job is narrow and well-bounded: it supplies/registers a Redis-backed cache store and queue driver for Flarum, plus the config plumbing to select them. That is a thin adapter over illuminate/cache and illuminate/queue semantics, which is the right place for this logic — it does not touch domain code, does not patch core, and is reversible via config. Low architectural blast radius, which is the main point in its favor.
Integration feasibility. Moderate — and the difficulty is not in the package. Two real prerequisites:
queue:work / equivalent) under a supervisor. Flarum's async email/notification path silently degrades to synchronous or drops work if this isn't running. This is a new daemon in your topology.There is also Flarum-specific friction: cache and queue drivers are typically set in config.php, not the admin UI, so changes are deploy-time configuration, not a toggle.
Technical risk.
| Risk | Severity | Notes |
|---|---|---|
| Redis as single point of failure for cache | Medium-High | Cache outage in Flarum can surface as request errors and DB load spikes, not graceful degradation. Needs a fallback/runbook decision. |
| Eviction policy collision | High if unmanaged | If the same Redis instance/DB serves both cache and queue with allkeys-lru, queued jobs can be evicted and silently lost. Separate DBs or instances, noeviction for the queue. |
| Maintainer/bus factor | Medium | Blomstra is an established commercial Flarum services shop, which offsets the 14-star signal — but it is a small ecosystem and a small team. |
| Version drift vs. Flarum core | Medium | Must verify the flarum/core constraint in composer.json. Flarum's release cadence is slow but breaking; a lagging extension blocks upgrades. |
| Redundancy with upstream | Medium | Flarum core has extended its own cache/queue driver support over time. Verify whether this extension is still additive or now just sugar. If core covers it, this dependency is avoidable. |
| PHP client dependency | Low | Requires phpredis (preferred) or predis/predis; phpredis is a PECL build, which complicates container images slightly. |
Key questions.
flarum/core and PHP version ranges does the extension declare, and when was the last release?Stack fit. Adopt only if Flarum is already a supported platform in the estate. The transferable asset is Redis operational competency (provisioning, eviction policy, persistence, monitoring, worker supervision), which the team likely already has from Laravel services — that makes this cheap to operate and makes the extension itself almost incidental. Treat it as a configuration and infrastructure change, not a software integration.
Migration path. Staged and reversible, which is the strongest argument for it:
phpredis in the Flarum image; build and smoke-test.config.php pointing cache at Redis. Observe hit rate, memory, and DB QPS for a week. Rollback is a one-line config revert.noeviction. Stand up the worker under your existing process supervisor.maxmemory-policy, worker concurrency).Splitting cache (step 4) from queue (step 5) is important: cache is a performance change with a clean rollback; queue is a reliability change with a new daemon and potential for silent job loss. Bundling them hides which one broke.
Compatibility. Confirm the extension's declared flarum/core range against the pinned version, and phpredis against the PHP runtime. If the Flarum instance is on an older minor, upgrading Flarum may be a prerequisite — which turns a small change into a platform upgrade and should be sequenced and staffed as such.
Sequencing relative to the roadmap. Low urgency. There is no user-visible feature here. It belongs in platform hygiene work, prioritized behind anything with a direct product outcome — consistent with the 0.38 opportunity score. Do it when Flarum is already being upgraded, or when there is an observed cache/queue bottleneck. Do not do it as a standalone initiative.
Maintenance. Very low code-maintenance burden — the extension is a thin adapter and should need little attention. The real steady-state cost is infrastructure ownership: Redis capacity, eviction policy, persistence settings, upgrades, and monitoring. That cost exists whether or not you install this package, so it should be charged to the Redis platform, not to the extension.
Support. No commercial support contract; support is community- and sponsor-driven (Blomstra sells Flarum services, which gives a de facto escalation path if we become a customer). For a forum that is not business-critical, acceptable. For a customer-facing community with revenue attached, the lack of an SLA should be an explicit accepted risk, and the mitigation is "we can revert to file cache in minutes," which is credible here.
Scaling. Redis cache scales cleanly to the sizes any Flarum deployment will reach. Queue throughput scales with worker count and is bounded by the slowest job (typically SMTP delivery). The scaling ceiling for Flarum is almost always the database and PHP-FPM, not this layer — so this package does not meaningfully raise the ceiling; it removes a specific bottleneck. Do not oversell it.
Failure modes to design against.
noeviction; this is the single highest-impact misconfiguration.maxmemory below instance size with alerting.Ramp-up. Small and mostly familiar. Any engineer who has run Laravel queues will recognize the worker model immediately. The genuinely new knowledge is Flarum-specific (config.php-driven driver selection, no admin toggle) and the failure-mode discipline above. Estimate: half a day for the install and config, one to two days to stand up Redis, worker supervision, dashboards, and the runbook. The runbook is the deliverable, not the Composer install.
Recommendation. Adopt opportunistically, not as an initiative. Trigger conditions: Flarum is already being upgraded, or there is measured cache/queue pain. First action is not an install — it is verifying whether Flarum core now covers this, and confirming we can isolate queue traffic from cache traffic. If either answer is bad, defer.
How can I help you explore Laravel packages today?