- What is smolevich/reindexer-client used for in a Laravel application?
- It is a PHP SDK for Reindexer, an embeddable in-memory document database with full-text and faceted search, exposed over HTTP and gRPC. In Laravel it is best used as a client for a secondary search or read model, such as catalog search, faceted navigation, or full-text lookup. It is not a drop-in Eloquent replacement or a transactional system of record. You still run reindexerd as a separate service and keep MySQL or PostgreSQL as the source of truth.
- How do I install smolevich/reindexer-client in a Laravel project?
- Install it with Composer using composer require smolevich/reindexer-client; the package is MIT licensed and Composer-installable. You will also need a running Reindexer server, such as reindexerd in Docker, because the SDK is a remote client rather than an embedded database. If you plan to use gRPC, confirm ext-grpc and protobuf tooling are available in your PHP runtime. HTTP is the simpler transport to start with because it avoids that extra extension and build complexity.
- Does smolevich/reindexer-client include a Laravel service provider, facade, or config file?
- Based on the available package overview, it does not ship Laravel-specific integration such as a service provider, facade, or publishable config. You should expect to bind the client as a singleton in a service provider and wrap it in your own domain-specific repository or adapter. That adapter layer is also useful for isolating Reindexer query syntax so you can swap search backends later. Treat any Laravel conveniences as something you add, not something the SDK guarantees.
- Which Laravel and PHP versions does smolevich/reindexer-client support?
- The provided package metadata does not document tested Laravel or PHP version constraints, so you must verify composer.json requirements before adopting it. Check compatibility against Laravel 10, 11, and 12 and PHP 8.1 through 8.4 in a spike branch. Also confirm Guzzle or PSR-18 HTTP client compatibility if you use the HTTP transport. Pin the Reindexer server version in Docker and keep staging and production on the same version.
- Should I use HTTP or gRPC with Reindexer in a Laravel app?
- Start with HTTP unless you have benchmarks showing gRPC is necessary. HTTP is simpler to deploy and avoids ext-grpc and protobuf tooling in the PHP runtime, at the cost of a network hop and serialization overhead. gRPC may offer better performance for high-throughput indexing or query workloads, but it adds build and deployment complexity. Measure p95 search latency and indexing throughput with your own pilot data before choosing.
- Can I use Reindexer as the main database for a Laravel application instead of MySQL or PostgreSQL?
- That is not the recommended fit. Reindexer is a standalone document database with search features, while the SDK is a remote client, so a Laravel app must operate reindexerd as a separate stateful service. The safer pattern is to keep MySQL or PostgreSQL as the transactional source of truth and use Reindexer as a derived read model for search and facets. Using it as the system of record would require you to solve transactions, consistency, backups, and Laravel integration concerns that the package does not provide.
- How do I keep Reindexer search data in sync with my Laravel database?
- Use an outbox or queued indexer pattern rather than writing to both databases directly inside a request. On create, update, and delete events, queue an indexing job that upserts or removes the document in Reindexer. Add a search:reindex Artisan command for backfills and rebuilds, and expect to handle retries and failures explicitly. There is no native Laravel transaction integration between your SQL database and Reindexer, so dual-write consistency is your responsibility.
- Does smolevich/reindexer-client support bulk indexing, facets, pagination, and sorting?
- The package is described as a client for Reindexer, which supports full-text and faceted search, so bulk indexing and facet queries are plausible use cases. However, the available overview does not document the exact SDK API surface for bulk upsert, partial updates, pagination, sorting, retries, or timeouts. Verify those capabilities in a spike before committing to the package. If a method is missing, you may need to call the Reindexer HTTP or gRPC API directly or wrap it in your own adapter.
- How should I test a Laravel application that uses smolevich/reindexer-client?
- Keep your application code behind a SearchRepository interface so tests can use a fake or null adapter without a live Reindexer server. For integration tests, run reindexerd in Docker Compose and pin the same server version you use in staging and production. Test indexing jobs, retry behavior, timeouts, and fallback paths as well as happy-path queries. Avoid making unit tests depend on a shared external Reindexer instance.
- Is smolevich/reindexer-client actively maintained, and what alternatives should I consider?
- The assessment flags material due-diligence gaps: the repository is unknown, the package has about 10 stars, and the release metadata is future-dated, so treat maintenance and support claims as unverified. There is no evidence of a security response process or long-term support model. If you need a lower-risk Laravel search backend, evaluate Meilisearch, Typesense, or Elasticsearch behind the same repository interface. Isolating the SDK behind an internal interface makes that replacement feasible without rewriting domain code.