cmsig/seal-algolia-adapter
Algolia adapter for the SEAL search engine (cmsig/search). Writes SEAL documents to Algolia SaaS and can be configured via Algolia SearchClient or a simple DSN (algolia://APP_ID:ADMIN_KEY). Early-stage; feedback welcome.
cmsig/seal..env DSN support), reducing boilerplate.cmsig/seal.algolia/algolia-search-client-php package, which is stable and widely adopted.cmsig/seal) are heavily under development (per README), with no dependents and minimal community adoption. Risks include:
cmsig/seal for breaking changes or contribute feedback to the community?spatie/laravel-search) that offer tighter integration?Engine to the container for dependency injection..env for Algolia credentials (DSN support) and config/seal.php for adapter settings.ModelSaved) to trigger index updates.Engine instances.cmsig/seal) supports:
setSettings, batch operations).composer require cmsig/seal cmsig/seal-algolia-adapter..env:
ALGOLIA_APP_ID=your_app_id
ALGOLIA_SECRET_KEY=your_admin_key
app/Config/AlgoliaSchema.php).Engine in a service provider:
$this->app->singleton(Engine::class, function ($app) {
$client = SearchClient::create(
config('algolia.app_id'),
config('algolia.admin_key')
);
return new Engine(new AlgoliaAdapter($client), $app->make(Schema::class));
});
$engine = app(Engine::class);
$engine->index('products', $product->toArray());
Engine:
$results = $engine->search('products', 'query', ['hitsPerPage' => 10]);
cmsig/seal and algolia/algolia-search-client-php for updates.composer.json to avoid surprises:
"require": {
"cmsig/seal": "^1.0",
"cmsig/seal-algolia-adapter": "^1.0"
}
cmsig/search repo).cache()->remember).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Algolia API outage | Search queries fail | Implement a fallback cache (e.g., Redis) or graceful degradation. |
| Rate limit exceeded | Indexing/querying throttled | Use exponential backoff in retries; batch requests smaller. |
| Schema mismatch | Data corruption or indexing failures | Validate schemas before indexing; use migrations to sync changes. |
| SEAL breaking change | Adapter incompatibility | Test against cmsig/seal release candidates; have a rollback plan. |
| Credential leakage | Security risk | Use Laravel’s env() or Vault for secrets; rotate keys periodically. |
| Large dataset indexing | Timeouts or memory issues | Stream data in chunks; use Laravel’s queue workers. |
How can I help you explore Laravel packages today?