symfony/ai-cache-message-store
PSR-6 cache message store for Symfony AI Chat: persist and retrieve conversation messages through any PSR-6 cache implementation, keeping chat history fast and simple to manage.
MessageStore interface. That makes it a buy decision only if we've already bought into symfony/ai-chat; otherwise we'd be adopting a Symfony component to get an interface we could define ourselves in roughly a day of Laravel-native engineering. Frame the decision as "adopt Symfony AI Chat?" first, "adopt this bridge?" second.Cache facade (and Cache::tags() for invalidation) does it without a Symfony dependency.Consider it when all of these hold:
symfony/ai-chat as the AI chat layer — the real dependency to evaluate is that component's maturity, provider coverage, and release cadence, not this bridge.MessageStore contract with no schema migration.Look elsewhere when:
Cache facade is PSR-16, not PSR-6 (a correction worth repeating loudly — the opposite has appeared in earlier drafts). Bridging means pulling in symfony/cache and configuring a second Redis connection outside config/cache.php, losing Laravel's key prefixing and tag support. That's a real integration tax for a thin adapter.MessageStore implementation over Laravel's cache is cheaper than the Symfony coupling. Price this one-day option explicitly alongside adoption — the near-empty 0.14.0 changelog is itself evidence the adapter is very thin.Before any commitment, resolve: the exact MessageStore method set (append-only vs. full-history read/write), whether our real message shapes (tool calls, multimodal parts, enums) round-trip through the cache driver, TTL ownership (store vs. pool), and the invalidation convention given there are no cache tags. A 2–3 day spike against the current v0.14.0 source — not the v0.8-era snippets in our drafts — should produce a short internal API note.
For executives (one paragraph): This is a small, free, MIT-licensed adapter that lets an AI chat component remember conversations using the Redis cache we already run, with no database changes. It is not a platform or a product in itself — it only matters if we choose Symfony's AI Chat component as our conversational layer, and a decision on that should come first. The package is early-stage (pre-1.0, negligible adoption, no vendor support, minimal documentation), so the honest recommendation is to treat it as an input to the chat-framework decision rather than an approved dependency. If we do adopt Symfony AI Chat, this bridge is a low-effort option worth a short spike; if we build the chat layer on Laravel-native tooling, a comparable adapter is roughly a day of internal work and this package should be skipped. Either way, cache is an optimization on top of a durable conversation store — never the store itself — and no cost or performance benefits should be quoted until we've measured them ourselves.
For engineering (three bullets):
symfony/ai-chat, not this bridge; the bridge inherits every risk of that component. The bridge itself is a thin PSR-6 adapter inside the symfony/ai monorepo, currently at v0.14.0.symfony/cache and a separately configured Redis connection. Budget for two cache configs and no Cache::tags().Ask: approve a 2–3 day spike conditional on the chat-framework decision, not a production commitment. The recurring cost of tracking the 0.x line is real but small (v0.14.0 was a version bump with no functional change — we still have to bump, regression-test, and ship it); the real decision is which chat layer we're building on.
How can I help you explore Laravel packages today?