Skip to main content
2026-10-12
  • Updated @stigg/cache-core to 1.30.0 and @stigg/cache-redis-store to 1.31.0. No change to persistent-cache-service itself; readers and writers on either version remain compatible against the same Redis.
2026-10-12
  • Fixed: the cache now keeps a metered feature’s unit transformation, so SDKs and the Sidecar reading from Redis convert requestedUsage into the limit’s units. Entries cached before the upgrade gain it when they’re next rewritten.
2026-10-11
  • Versions 3.22.0 and 3.23.0 (2026-10-11) carried no functional change to persistent-cache-service. Each only bumped the package version to track releases of other packages in the monorepo.
2026-09-28
  • Fixed: a credit-backed feature whose credit entitlement has a soft limit is no longer written to the cache with InsufficientCredits when the credit balance reaches zero.
2026-09-17
  • Internal improvements to how cached entitlements and usage track when they were last written. No cache-format change; readers and writers on either version remain compatible against the same Redis.
2026-09-02
  • Fixed: an unparseable timestamp on an incoming entitlement or usage event was written to the cache as NaN instead of null. It’s now written as null, consistent with every other unreadable-timestamp case. Valid timestamps, including epoch 0, are unaffected.
  • Upgraded internal Stigg cache package dependencies and switched the build to esbuild bundling. No API or cache-format change; readers and writers on either version remain compatible against the same Redis.
2026-09-01
  • Versions 3.10.0 through 3.19.0 (2026-07-05 to 2026-09-01) carried no functional change to persistent-cache-service itself.
  • 3.10.0 moved the Docker build and release pipeline onto the shared stigg-sdk monorepo pipeline (CI/CD only — no image or runtime change).
  • 3.10.1 through 3.19.0 each only bumped the package version to track releases of other packages in the monorepo; nothing in persistent-cache-service changed in any of them.
2026-07-05
  • Added: hasSoftLimit is now written into the cache for feature and credit entitlements. Requires @stigg/node-server-sdk v4.45.0+ on the reader side to take effect; older readers ignore the field.
  • Migrated to the stiggio/stigg-sdk monorepo, now published as @stigg/persistent-cache-service. The standalone stiggio/persistent-cache-service repository is retired. No image, config, or behavior change from the move itself.
2026-06-21
  • Bumped form-data to 4.0.6, patching CVE-2026-12143.
  • Versions 3.8.2 through 3.8.5 (2026-06-02 to 2026-06-21) were Docker release pipeline hardening (multi-arch registry push, private ECR mirroring, per-arch image tagging) with no functional change.
2026-06-02
  • Patched CVEs in lodash, qs, and fast-xml-builder.
2026-06-01
  • The published Docker image is now a single multi-arch (linux/amd64 + linux/arm64) manifest under the standard tag. The separate -arm64-tagged image and private persistent-cache-service-arm ECR repo introduced in 3.7.0 are retired.
2026-05-28
  • Added a linux/arm64 build of the persistent-cache-service Docker image, published to a private ECR repo under an -arm64 tag alongside the existing linux/amd64 image.
2026-05-19
  • Added: KEYS_TTL_IN_SECS now accepts a negative value (e.g. -1) to disable expiration on Redis cache entries, matching Redis’s own no-expiry convention. Applies to all writes through the SQS-driven persistent-cache-service pipeline (entitlements, usage). Default behavior is unchanged when KEYS_TTL_IN_SECS is unset (7-day TTL). Purge/invalidation paths are unaffected — subscription migration continues to converge the cache. To get end-to-end no-expiry behavior, the same negative value must also be set on the reader side: @stigg/node-server-sdk v4.41.0+ (redis.ttl: -1) or sidecar-service v6.120.0+ (REDIS_KEYS_TTL_IN_SECS=-1).
2026-05-11
  • Versions 3.3.0 and 3.4.0 (2026-05-10 to 2026-05-11) changed only the release workflows (new CI workflows and pushes to a private image registry). No image or runtime change.
2026-03-30
  • Upgraded Stigg package dependencies and resolved security vulnerabilities.
2026-03-17
  • Added support for caching credit entitlement data to enable low-latency credit balance retrieval via getCreditEntitlement().
  • Fixed an issue with custom currency handling.
2026-02-25
  • Migrated to modular cache packages (@stigg/cache-core and @stigg/cache-redis-store) for improved maintainability and extensibility.
2026-02-23
  • Resolved a deployment workflow issue with the persistent cache service.
2026-02-18
  • Upgraded fast-xml-parser dependency to resolve security vulnerability CVE-2026-26278.
2026-02-18
  • Added: usagePeriodEnd on credit entitlements is now written to the cache. Accepts a timestamp or an ISO string, and is optional.
2026-02-11
  • Security: upgraded dependencies to patch high-severity CVEs.
2026-02-04
Breaking change: This version introduces a new Redis data structure for storing entitlement data. This change enables support for credit entitlements at high scale.
Once persistent-cache-service v3.0.0 writes data to Redis, older versions of @stigg/node-server-sdk and sidecar-service will not be able to read it correctly and will return incorrect entitlement data.

What changed

  • The Redis data structure now stores entitlements in a polymorphic format that supports both boolean and credit-based entitlements
  • Credit features are now properly linked to their credit entitlements

Why this matters

If you deploy persistent-cache-service v3.0.0 before upgrading all SDK/sidecar instances:
  • Older versions will misinterpret the new data structure
  • Entitlement checks may return incorrect results
  • This could affect your customers’ access to features

Migration steps

You must follow this upgrade sequence:
  1. Upgrade your SDK or Sidecar to the minimum required versions (upgrade whichever you use):
    • @stigg/node-server-sdk → v4.12.1 or later
    • sidecar-service → v5.194.5 or later
  2. Deploy all updated services: ensure all SDK and/or sidecar instances are running the new version
  3. Deploy persistent-cache-service v3.0.0, only after step 2 is complete

Migration considerations

As part of this change, additional entitlement metadata is stored, which may result in increased Redis memory usage.We recommend monitoring Redis memory usage following the upgrade and adjusting your memory allocation accordingly — particularly in environments with large entitlement caches.
2026-01-11
  • Added: the customer-level access-denied reason (CustomerNotFound, NoActiveSubscription or CustomerIsArchived) from entitlements-updated messages is now stored with the customer’s cached entitlements.
2025-11-23
  • Added in-memory and persistent credit balance cache support to the SDK.
  • Credit balances now automatically update on grant and consumption events.
  • Entitlement evaluation uses the cached credit balance for faster checks.