jord-jd/json-key-value-store
A lightweight JSON-backed key-value store for PHP and Laravel applications. Save and retrieve settings, config values, or small datasets in flat files through a simple API—no database required. Ideal for prototypes, local tools, and lightweight persistence.
No prior assessment exists; this is the initial baseline, incorporating v4.0.1.
The package is a file-backed key-value/store component for Laravel/PHP applications. Architecturally it fits Laravel applications that need a lightweight local persistence layer for small datasets, configuration snapshots, test fixtures, or simple cache-like storage without introducing an external service. It is a poor fit for distributed, multi-node, or high-write workloads unless the filesystem and locking model are explicitly validated.
v4.0.1 is a patch release with three meaningful change categories:
delete() operations now persist across store reopen, preventing deleted keys from reappearing. This is a real data-integrity fix and should be treated as a reason to upgrade if the package is already in use.Exception or rely on prior failure behavior.Technical risks are mostly environmental: local filesystem assumptions, directory permissions, lock behavior on NFS/container ephemeral storage, and binary/non-UTF-8 payload handling through JSON encoding. The delete-persistence fix suggests the storage format or write path may have had edge cases; regression tests around reopen/delete semantics are essential.
Key questions:
catch blocks?Stack fit is strongest for single-node Laravel apps already using local disk storage: small internal tools, scheduled jobs, CLI utilities, and test environments. It is a weaker fit for horizontally scaled services, multi-tenant platforms with large stores, or systems requiring strong consistency across nodes.
Migration path from prior 4.x versions is low-friction: this is a patch release, not a major-version breaking change. Teams should upgrade in a controlled patch cycle, then validate delete/reopen behavior and exception handling. No database migration is implied, but existing store files should be backed up or snapshotted before deployment if they contain critical state.
Compatibility is broad on paper: PHP 7.1 through 8.5 tested, with no runtime minimum increase. For new adoption, target a currently supported PHP version; treat PHP 7.1 as legacy compatibility rather than a strategic baseline. Laravel version compatibility must be confirmed independently.
Sequencing:
Maintenance posture improves with GitHub Actions replacing retired Travis/Coveralls, which reduces CI drift and signals active stewardship. The explicit exception work also improves operability by making failures actionable rather than opaque.
Support burden is moderate. Application developers can adopt it quickly, but SRE/platform teams must understand filesystem permissions, disk capacity, backup/restore of store files, and lock behavior under concurrency. PHP 7.1 support is a support-matrix concern: it broadens compatibility but may encourage running EOL runtimes.
Scaling is the main constraint. A file-backed store is typically bounded by local disk I/O, file locking, and single-node semantics. It should not be positioned as a replacement for Redis, a database, or a distributed cache without a clear capacity and concurrency model. If the application scales horizontally, each node may have an isolated store, creating consistency and data-locality issues.
Failure modes to plan for:
Ramp-up is low for Laravel developers: Composer install, configuration, and standard filesystem permissions. The TPM recommendation is to adopt v4.0.1 as a patch upgrade or initial baseline for appropriate single-node use cases, with explicit validation of delete durability, exception handling, and filesystem locking before production rollout.
How can I help you explore Laravel packages today?