Infrastructure and delivery
Portable cache, object storage, mail, and queue contracts with explicit provider ownership.
Infrastructure packages normalize the small set of behavior application capabilities need while leaving connections, credentials, lifecycle, observability, and native provider access under application control.
Packages
| Package | Plan | Responsibility |
|---|---|---|
@playstack/cache | JSON caching, tag invalidation, and stampede-safe reads. | |
@playstack/cache-next | Shared Next.js caching and signed revalidation. | |
@playstack/storage | Streaming object storage and explicit URL capabilities. | |
@playstack/nest-storage | Named NestJS storage-driver injection. | |
@playstack/mail | Typed rendering, envelopes, and provider delivery. | |
@playstack/queues | Typed jobs, namespacing, retries, failure hooks, and traces. | |
@playstack/nest-queues | NestJS queue injection and worker lifecycle. | |
@playstack/local-first | Atomic local mutations and push/pull synchronization. | |
@playstack/local-first-indexeddb | IndexedDB transactions and browser coordination. | |
@playstack/local-first-expo | Expo SQLite transactions and mobile coordination. | |
@playstack/registry | Private package registry core with host-owned access. | |
@playstack/nest-registry | NestJS binding for the read-only npm registry protocol. | |
@playstack/registry-swift | Swift Package Manager registry reads over the same core. |
Application-owned clients
Every adapter accepts or exposes the underlying provider client. That lets the composition root control pooling, credentials, shutdown, transactions, metrics, and provider-specific escape hatches.
Adopt independently
These packages do not form a required platform. Use the cache without the queue, the storage contract without mail, or none of them when a provider SDK already gives the application the right boundary.