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

Psr6 Dynamo Db Bundle Laravel Package

rikudou/psr6-dynamo-db-bundle

A Symfony bundle that provides a PSR-6 cache adapter backed by AWS DynamoDB, letting applications use a DynamoDB table for scalable cache storage and integrate the cache pool with Symfony's configuration and services.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Cache backend selection for AWS-native deployments. This package answers a recurring infrastructure question: "do we run ElastiCache/Redis, or use the DynamoDB we already pay for?" It gives a concrete, standards-based option for the DynamoDB side of that trade-off, which feeds directly into architecture and cost-model decisions.
  • Serverless / Lambda roadmap (e.g. Bref-hosted PHP). Lambda's ephemeral filesystem and VPC-attached Redis requirements are the classic blockers for PHP caching in serverless. A DynamoDB-backed PSR-6/PSR-16 pool removes both: managed, VPC-free (via gateway endpoint), TTL-based expiry, no cluster to operate. If serverless is on the roadmap, this is a dependency that unblocks it.
  • Build vs. buy for a cache adapter. A correct DynamoDB cache adapter is deceptively small: partition-key design for hot keys, 400 KB item ceiling, TTL being best-effort (not a guarantee), batch read/write, throttling/backoff, and stampede behaviour. Buying (MIT, ~small surface) is cheaper than owning that edge-case list — but only if maintenance risk is acceptable (see below).
  • Portability / standards compliance as a de-risking lever. PSR-6 and PSR-16 mean the cache contract is framework-idiomatic, so a swap back to Redis, Memcached, or filesystem is an adapter change, not a refactor. That lowers the cost of being wrong and makes the decision reversible.
  • Feature-level caching decisions. Useful for shared, cross-instance cache that must survive container restarts and be readable by every stateless web/Lambda worker — session-adjacent data, computed API responses, rate-limit counters, rendered fragments with explicit TTLs.
  • Prioritisation signal, not a growth bet. Low stars, 0 dependents, and a low opportunity score indicate a niche utility rather than an ecosystem trend. Treat it as a tactical infrastructure enabler, not a strategic platform commitment. The v4.2.0 release (forward-compat with Symfony 8, a first-time outside contributor) is a mild positive on maintenance cadence but does not change this classification — and it delivers nothing for a Laravel codebase specifically.

When to Consider This Package

Consider it when:

  • The application is Symfony-based — this is a Symfony bundle. The PSR interfaces are portable, but the service wiring, configuration tree, and autoconfiguration are Symfony-specific. A Laravel codebase would either need to consume the underlying implementation directly or wrap it in a custom Illuminate\Cache store; that is real integration work, not a composer require. v4.2.0 does not change this — the release adds Symfony 8 support only; there is no Illuminate\Cache driver, service provider, or Laravel config surface.
  • You are already on AWS and DynamoDB is an approved, provisioned service — ideally with existing spend commitments and IAM patterns to reuse.
  • Your runtime is stateless or ephemeral (Lambda/Bref, Fargate, autoscaled containers) where a local filesystem cache is useless and a Redis cluster adds VPC, NAT, and failover complexity.
  • Your cache access pattern is read-heavy with modest QPS — a network hop per get is acceptable, sub-millisecond in-process caching is not.
  • Your values are small (well under 400 KB), TTL-scoped, and tolerant of eventual consistency, and your application already handles cache misses gracefully.
  • You want an escape hatch: PSR compliance means you can trial it behind an interface and revert cheaply.

Look elsewhere when:

  • Latency budget is tight or QPS is high. Per-request network round-trips and DynamoDB read/write costs scale worse than a co-located Redis/APCu tier for hot keys. Benchmark before committing.
  • You need atomic or rich cache semantics — compare-and-swap, tags/invalidation groups, pub/sub invalidation, or strict TTL guarantees. DynamoDB TTL is best-effort (deletion can lag substantially); expiry correctness must come from read-time checks.
  • Maintenance risk is unacceptable. Single maintainer and 0 dependents remains a genuine bus-factor concern for a production-critical path. Mitigations: vendor the code, pin the version, and keep a tested fallback adapter configured. v4.2.0 slightly improves the signal — a merged external contributor plus CI coverage against the newest Symfony major — but one release is not a track record; keep the mitigations in place.
  • Operational ownership of DynamoDB is unwanted. Provisioned capacity, throttling alarms, IAM policy scope, and table design are real ongoing costs that a managed Redis service outsources.
  • A first-party adapter already fits — e.g. Symfony's Redis/Memcached/PDO/filesystem adapters, or the framework's default cache, if the AWS/serverless constraints above do not apply.

How to Pitch It (Stakeholders)

For executives (one paragraph): We are evaluating a small open-source component that lets our PHP application use AWS DynamoDB as its cache layer instead of running a separate Redis cluster. The business case is operational: it removes a piece of infrastructure we would otherwise have to provision, secure, monitor, and pay for, and it reuses an AWS service we already operate under existing agreements. It is standards-based (PSR-6/PSR-16), MIT-licensed, and reversible — swapping back to another cache backend is a configuration change, not a rewrite. The main caveat is maturity: it is a low-adoption, single-maintainer project, though the latest release shows active upkeep and forward-compatibility with the current framework generation. We would still pin the version, retain a tested fallback, and treat it as an infrastructure dependency rather than a platform bet. Recommendation: proceed to a time-boxed spike, not a broad rollout — and budget the Laravel adapter work separately if Laravel is the target.

For engineering: It provides CacheItemPoolInterface (PSR-6) and CacheInterface (PSR-16) implementations backed by DynamoDB, packaged as a Symfony bundle with configuration and DI wiring. v4.2.0 is a non-breaking minor release: it adds Symfony 8 to the supported/CI matrix, bumps the minimum version of the underlying base library to 3.2, and includes housekeeping. No deprecations, no config changes, no migration steps — an upgrade from 4.0.1 is a version bump and a composer update, with the caveat that the base-library floor now forces that dependency forward, so confirm nothing else in the tree pins it lower.

Two things to validate in the spike: (1) our actual p50/p99 latency and per-operation cost against expected QPS, versus the Redis baseline; (2) correctness under our failure modes — throttling, partial writes, item size limits, and the fact that DynamoDB TTL is best-effort, so we must not rely on it for correctness. Also confirm the maintenance posture: still a single primary maintainer, so we should vendor/pin and keep a fallback adapter exercised in CI — the new contributor and Symfony 8 CI coverage are encouraging but not yet a pattern. Note this is Symfony-only; if the target is Laravel, scope the Illuminate\Cache adapter work explicitly rather than assuming drop-in support — v4.2.0 does not narrow that gap.

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.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin