algolia/algoliasearch-laravel
Official Algolia integration for Laravel. Index Eloquent models, keep them synced automatically, and add fast, typo-tolerant search to your app, with Scout support, aggregators, and zero-downtime reindexing.
Verdict: still do not adopt. Release 1.7.1 changes one fact and no conclusion. The changelog is a single line — "Make compatible with Laravel 5.4" — which moves the ceiling of supported frameworks from pre-5.4 to Laravel 5.4. Laravel 5.4 shipped in January 2017 and left security support in January 2018; it is not a supported framework in 2025, and our codebases are on 10/11/12. Nothing in the release touches the actual blockers: the pinned algolia/algoliasearch-client-php ^1.0, the PHP 5.6/7.0-era code paths, the absence of a security policy, and the fact that first-party Laravel Scout has owned this capability since 2016. A dependency whose newest release targets an eight-year-old framework is not being maintained; it is being minimally unblocked.
Architecture fit. Unchanged. The package remains a thin service provider + facade + Eloquent trait that predates package auto-discovery. It couples models directly to Algolia PHP SDK v1 with no queue integration, no index-settings-as-code, and no multi-model support. The abstraction boundary is still wrong for any maintained Laravel app: search belongs behind Scout or an internal adapter, not a hard-coded SDK wrapper.
Integration feasibility. Low, and the release does not move it:
each(), curly-brace string offsets) and the v1 SDK remain.algolia/algoliasearch-client-php ^1.0 is still pinned and still unsupported; current is v4.x. No dependency bump appears in this release.Technical risk. High, unchanged, with a new item:
Key questions for the requester:
algolia/scout-extended or the maintained PHP client is the answer, not this package.Stack fit. Unchanged: laravel/scout plus the current algolia/algoliasearch-client-php, with algolia/scout-extended only if aggregators/multi-model search are genuinely required. 1.7.1 does not create a viable middle path — it makes an unsupported package declare compatibility with an unsupported framework.
Migration path. Treat as a swap, not an upgrade:
SearchService interface so controllers never touch the engine.Searchable with an explicit toSearchableArray() rather than relying on toArray(), which is where schema drift originates.catalog_v2, full reindex from a queue worker, shadow-read against production traffic, compare result sets, then flip the alias and drop catalog_v1.Compatibility. If anyone proposes taking 1.7.1, require a pinned-version spike proving the whole chain (Laravel version, PHP 8.x, Algolia client v1) resolves and runs — it will not, on PHP 8.x. Note that adopting 1.7.1 also means pinning an SDK major that the current Algolia client does not share, so Scout and this package cannot coexist on the same client version; the migration must be a cutover, not a parallel run at the dependency level.
Sequencing. Unchanged: spike (1–2 days, one model, prove index/query parity) as a hard gate → interface + adapter → per-model port → dual-write and shadow-read → cutover → removal. One to two sprint-weeks for a mid-sized app with 5–15 searchable models.
Maintenance. Decisive, and the release slightly worsens the picture rather than improving it. A single-line compatibility bump to a 2018-EOL framework tells us the package receives attention only under external pressure and only in the smallest increment that unblocks someone. There is still no owner, no roadmap, no PHP-version policy. If a PHP minor breaks it or a CVE lands in the pinned SDK, the options remain fork-and-patch (MIT permits it, but the fork becomes a permanent owned artifact with an owner, CI, and release process) or emergency rewrite under incident pressure.
Support. None from the maintainer; Algolia support will not cover a v1 client; Scout issues will be closed as out-of-scope. Internal escalation means reverse-engineering 2017-era code. A one-line changelog also tells us the maintainer's response surface is effectively zero.
Scaling. The engine scales; the integration is the constraint. This generation indexes synchronously in the request path, so write latency and Algolia rate limits become ours. Scout's queued indexing and batched chunk() reindexing is the correct shape above a few thousand records; plan queue capacity and a reindex runbook (throttle, idempotency, resume-from-ID) before cutover.
Failure modes to instrument explicitly:
Ramp-up. Low for the replacement — Scout is the default Laravel answer and any Laravel engineer is productive in a day. The real one-time cost is the reindex and parity validation, which is unavoidable on either path. Spending that effort on a dead API instead of a documented one buys nothing that 1.7.1 provides.
How can I help you explore Laravel packages today?