oxhq/cachelet-query
Cachelet Query is a Laravel package for fluent, cache-aware database queries, letting you cache expensive query results with automatic invalidation and tags while keeping Eloquent-style syntax simple and readable.
What shipped: v0.1.0 is the first public tag of Cachelet Query, distributed as a read-only split from the oxhq/cachelet monorepo. That is the entirety of the disclosed change surface — no feature list, no API documentation, no compatibility matrix, no changelog beyond the release title, and no stated stability guarantees.
Architecture fit (unknown, assumed Laravel-native): The naming and packaging convention implies a Composer-installable Laravel package intended to sit in the query/persistence layer (query result caching, cache-key derivation, invalidation). Because it originates inside a monorepo, the split artifact is likely a subtree split or splitsh output — meaning the package's service provider, config publishing, and facade surface are designed for a host application that also consumes sibling Cachelet packages. Two architectural risks follow directly from that: (a) the split may carry undeclared internal coupling to sibling packages that aren't published yet, and (b) the package may assume a monorepo-local directory layout or autoload configuration that doesn't survive the split cleanly. Neither can be verified from the release notes.
Integration feasibility: Low confidence at 0.1.0. Composer will install it, but "installs" and "integrates" are different claims. We cannot confirm Laravel version support (8/9/10/11/12), PHP constraint, whether a service provider is auto-discovered, whether config is publishable, or whether it depends on a cache driver contract beyond PSR-6/PSR-16.
Technical risk — material:
^0.1 safety net worth relying on; Composer treats 0.x minors as breaking by convention.Key questions for the maintainer (blocking before any adoption decision):
Stack fit: Presumed greenfield-adjacent Laravel. Fit is plausible but unproven — no composer.json constraints, no Laravel package discovery confirmation, no evidence of Octane/Swoole or queue-worker safety. Treat fit as unvalidated rather than positive.
Migration path: There is nothing to migrate from, so the real question is containment, not migration. Sequence:
0.1.* in a disposable branch or throwaway app. Read the actual composer.json, src/, and service provider — the release notes are not a substitute for the artifact.0.1.0) or a committed composer.lock entry. Do not float within 0.x.QueryCache contract we own) so replacement with Laravel's native Cache::remember or a first-party solution is a one-file change.Compatibility: Unknown across Laravel majors, PHP minors, and cache stores (Redis, Memcached, database, array). The cache-store dimension matters most for a query-caching package and is entirely undocumented. Also unverified: interaction with read/write connections, transactions, and multi-tenant cache-key scoping.
Sequencing: Gate progression on artifacts, not on version numbers. Define explicit exits: spike → pilot on one non-critical read path → broader rollout only after the maintainer answers the blocking questions and we've observed at least one subsequent release with a changelog.
Maintenance: The read-only split arrangement shifts maintenance cost onto us in three ways. We cannot file PRs against the published repo; we cannot rely on its issue tracker; and release cadence is dictated by the monorepo, which we don't control and which may bundle unrelated changes. Budget for a periodic "is the split still in sync with the monorepo?" check — split repos are a well-known source of drift when the generation job silently fails.
Support: Effectively self-support at 0.1.0. There is no versioned documentation, no stated support window, no security disclosure policy, and no evidence of a maintainer response commitment. For a package in the query path, absence of a security contact is a genuine concern — a cache-poisoning or key-collision defect would have no coordinated disclosure route.
Scaling: Unassessable from the release notes. The questions that matter: does the package add per-query overhead (key hashing, serialization) on every read, or only on cache misses? Does it hold query bindings or results in process memory (relevant under Octane, where that memory persists across requests)? Does cache-key derivation stay O(1) with complex where clauses? None of this is documented. Assume unbounded overhead until measured.
Failure modes, ranked by expected cost:
0.x transitive pin blocks a Laravel or PHP upgrade elsewhere in the app. Mitigate by isolating the dependency to the fewest possible services.Ramp-up: Low effort to install, moderate effort to trust. Realistic estimate: half a day to spike and read the source, one to two days to wire a pilot behind an owned interface with a correctness test, and an ongoing low-single-digit-hours-per-month maintenance tax for split-sync checks and fork hygiene. Ramp-up cost is not the risk here — the risk is that the ramp-up produces a "looks fine" signal from a package with no documentation, no visible CI, and no support commitment, and that signal gets read as approval.
Recommendation: Do not adopt for production query paths at 0.1.0. Fund a time-boxed spike to answer the blocking questions, hold the artifact behind an internal interface, and revisit on the next release with a real changelog.
How can I help you explore Laravel packages today?