Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Kv Store Laravel Package

tempest/kv-store

A lightweight key-value storage abstraction for Tempest PHP applications, offering a simple, consistent API for storing, retrieving, and managing persisted values while keeping storage code clean and framework-friendly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framing correction. Despite the prompt's "Laravel/PHP package" label, tempest/kv-store is not a Laravel package. It belongs to the Tempest framework ecosystem (tempestphp), a separate PHP framework with its own container, discovery, and configuration conventions. Laravel overlap exists only at the PHP/Composer level. Any evaluation must start from that mismatch, because it determines whether the package is a drop-in utility or an ecosystem commitment.

Architecture fit. The component is a key-value store abstraction with pluggable drivers (file-backed, in-memory, and typically Redis/array variants). Architecturally, this occupies the same slot as Illuminate\Cache / PSR-16 in a Laravel codebase. For a Laravel team, the functional overlap is near-total: Laravel already ships Redis, Memcached, database, DynamoDB, file, and array stores with TTL, tags, locks, and atomic increments. The differentiation would only matter if we wanted a framework-agnostic KV contract decoupled from Laravel's container — and that is not our stated need. Verdict: low architectural fit unless we are explicitly exploring Tempest.

Integration feasibility. Composer-installable, MIT-licensed, and published as a read-only sub-split, which means the split exists precisely to allow standalone installation outside the monolith. That is a positive signal for feasibility. The real friction is transitive: Tempest components commonly depend on tempest/support, tempest/core, and PSR-11 container contracts, and recent Tempest releases track PHP 8.4+. Installing it into a Laravel 10/11 app on PHP 8.2–8.3 will likely produce constraint conflicts or force a PHP upgrade. Expect to spend a half-day just proving the dependency graph resolves, before writing a line of integration code.

Technical risk. High, and mostly non-technical in nature:

  • Zero adoption signal. 0 stars, 0 dependents, composite score 0, opportunity 25.9. There is no ecosystem evidence of production use. We would be an early adopter with no peer precedent to lean on.
  • Read-only repository. Issues and PRs are routed to the tempest/framework monorepo. We cannot fork-and-patch cleanly within our own review process, and our internal contribution workflow would need to target an upstream we do not control.
  • Bus factor. Tempest is driven by a small core team. A dependency on a component maintained by a nascent framework introduces key-person and roadmap risk that is disproportionate to the value of a key-value store.
  • PHP version coupling. Framework-version and language-version pinning means upgrades are driven by Tempest's release cadence, not ours.

Key questions to resolve before any commitment:

  1. Does tempest/kv-store install and function without tempest/framework present, or does it require the Tempest container for driver resolution?
  2. What PHP version floor does the current release enforce, and what is the constraint on psr/container and psr/simple-cache?
  3. Which drivers ship in-tree, and is there a PSR-16 adapter, or is the contract Tempest-proprietary?
  4. What are the guarantees around TTL precision, atomic increment/decrement, compare-and-swap, and cross-process locking?
  5. What is the persistence and durability model for the file driver — fsync, lock contention, crash recovery?
  6. Who owns the component upstream, and what is the stated stability/BC policy?

Integration Approach

Stack fit. Poor-to-marginal for our current Laravel estate. If the goal is a KV store inside Laravel, Illuminate\Cache or symfony/cache are the correct answers — both are mature, both support PSR-16, both have Redis and file drivers with documented semantics. tempest/kv-store only becomes rational if the strategic intent is to evaluate Tempest itself, in which case this component is one leaf of a much larger decision and should be assessed as part of a framework spike, not in isolation.

Migration path. There is no realistic migration path into this package from Laravel, because there is nothing to migrate away from that Laravel's cache does not already do. The reverse — migrating off tempest/kv-store — is trivial by design (thin interface, swappable driver), which is the one genuine architectural virtue here. Treat it as low lock-in.

Compatibility. Two hard gates: PHP version floor and container/PSR constraints. Resolve both with a throwaway composer require --dry-run in a branch before allocating any engineering time. If the dependency graph drags in tempest/framework, the package is effectively all-or-nothing and the decision escalates to "adopt Tempest," not "adopt a KV store."

Sequencing. If we proceed at all:

  1. Resolution spike (0.5 day) — prove Composer install and autoload in an isolated branch.
  2. Contract review (0.5 day) — read the interface and driver implementations; document TTL, atomicity, and locking semantics.
  3. Bake-off (2–3 days) — implement one narrow use case (e.g., idempotency keys or feature-flag cache) behind our own adapter, with Illuminate\Cache as the control.
  4. Decision gate — adopt only if the bake-off shows a concrete capability gap in Laravel's cache, or if a Tempest evaluation is separately funded.

Do not sequence this into a critical path. It belongs in a sandbox with an explicit expiry date.

Operational Impact

Maintenance. The read-only split model means the repo is a build artifact, not a collaboration surface. Upgrades arrive as version bumps driven by Tempest's monorepo releases; we cannot cherry-pick a fix without going upstream. We must pin an exact version and treat every bump as a change requiring regression testing. Budget ongoing cost for tracking a fast-moving pre-1.0-adjacent framework.

Support. No vendor, no SLA, no commercial backing evident from the package metadata. Support is community channels (GitHub Discussions / Discord) with a small maintainer pool. For an internal platform team, this is acceptable for a sandbox spike and unacceptable for a production dependency without a named internal owner who can read the driver source.

Scaling. Entirely driver-dependent, and the drivers must be verified rather than assumed. A file-backed store will not survive horizontal scaling — shared-filesystem semantics, lock contention, and per-node cache divergence will surface first under load. A Redis driver would scale, but at that point we are using Redis through an unfamiliar, unproven client wrapper when Laravel's Redis integration is already hardened. Note that the file driver's failure characteristics under concurrent writers are the single most likely production surprise.

Failure modes to design for:

  • Cache stampede — no evidence of built-in single-flight/lock protection; we would layer it ourselves.
  • Silent driver fallback — if configuration resolution fails inside a Tempest-native container that we are not using, behaviour may degrade to in-memory rather than erroring, producing per-request cache misses that look like a performance bug rather than a config bug.
  • Version skew — a framework bump changing driver semantics without a semver-major signal (common pre-1.0).
  • Read-only repo drift — the split lagging the monorepo, so we pin a version that no longer matches upstream documentation.
  • Lock contention / partial writes on the file driver under concurrency.

Ramp-up. Non-trivial and under-budgeted. Tempest conventions (attribute-driven discovery, its container, its config layering) are unfamiliar to a Laravel team, so even a small integration requires reading framework documentation we do not otherwise use. Estimate 2–3 days of learning before the first meaningful line of integration code — for a component whose function Laravel already provides. That ratio is the core argument against adoption.

TPM recommendation. Do not integrate into any production Laravel service. Fund a bounded 1-week spike only if a Tempest framework evaluation is separately on the roadmap; otherwise close this out and route the underlying requirement to Illuminate\Cache or symfony/cache. The package is technically clean and MIT-licensed, but zero adoption, a read-only collaboration model, and near-total functional redundancy with our existing stack make the risk-adjusted value negative.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names