@cat-factory/caching 0.13.2 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +5 -5
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -14,7 +14,7 @@ consume through the kernel `AppCaches` port, implemented on
14
14
  the facade injects a `notificationPairFactory` (built from layered-loader's
15
15
  `createGroupNotificationPair` over dedicated ioredis clients, gated on `REDIS_URL`);
16
16
  a write on one node then broadcasts the invalidated key/group so every peer drops its
17
- in-memory entry. Only keys/groups travel on the wire never values. Absent the
17
+ in-memory entry. Only keys/groups travel on the wire, never values. Absent the
18
18
  factory (single replica, local mode, tests) the loaders are bare in-memory with zero
19
19
  extra dependency.
20
20
  - **Invalidate after commit, at every write site.** The consuming service calls
@@ -23,7 +23,7 @@ consume through the kernel `AppCaches` port, implemented on
23
23
  - **Staleness probes for git-backed caches.** A profile with `ttlLeftBeforeRefreshInMsecs`
24
24
  turns on preemptive in-memory refresh (layered-loader ≥ 14.5.3): an entry hit inside the
25
25
  window runs the caller's per-read `isStillCurrent` probe (a sha/hash compare, strictly
26
- cheaper than the load) in the background TTL bump when the source hasn't moved, full
26
+ cheaper than the load) in the background: TTL bump when the source hasn't moved, full
27
27
  background reload otherwise. DB-backed invalidation-driven caches leave the window unset:
28
28
  a DB read as a probe saves nothing over the DB read as the load.
29
29
  - **Deep imports keep ioredis out of every runtime but Node.** layered-loader's root
@@ -35,9 +35,9 @@ consume through the kernel `AppCaches` port, implemented on
35
35
 
36
36
  A Worker isolate has no cross-isolate invalidation bus and no Redis, so a TTL'd
37
37
  in-isolate cache over **mutable cross-instance state** would serve stale data after a
38
- write processed by another isolate a correctness bug, not an optimization. The
38
+ write processed by another isolate: a correctness bug, not an optimization. The
39
39
  Worker therefore wires the isolate-safe profile: caches of mutable state are
40
- configured **pass-through** (`enabled: false` every read runs its load), and only
40
+ configured **pass-through** (`enabled: false`; every read runs its load), and only
41
41
  caches of immutable or self-verifying entries (sha-pinned repo reads, static
42
42
  catalogs) get real TTLs. Distributed invalidation is a
43
43
  genuine Node-only concern, not a facade-parity gap: the Worker's cross-instance state
@@ -48,7 +48,7 @@ per-isolate staleness bug actually surfaces.
48
48
  Worker: its entries are external Confluence/Notion/GitHub/… page content re-validated
49
49
  by the source's cheap version probe (`ttlLeftBeforeRefreshInMsecs` + `isStillCurrent`),
50
50
  so a peer isolate's cached body self-heals within the refresh window without an
51
- invalidation bus its staleness is bounded by the probe, exactly like a sha-pinned
51
+ invalidation bus: its staleness is bounded by the probe, exactly like a sha-pinned
52
52
  read. Only `fragmentCatalog`, which mirrors our own mutable D1 rows, passes through.
53
53
 
54
54
  ## Named caches
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/caching",
3
- "version": "0.13.2",
3
+ "version": "0.13.4",
4
4
  "description": "The app-level caching seam for the Agent Architecture Board (docs/initiatives/caching-layer.md): createAppCaches builds the named, typed in-memory read-through caches (layered-loader) the services consume via the kernel AppCaches port, with optional distributed invalidation over an injected Redis notification pair. Redis is only ever an invalidation bus, never a data tier.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "layered-loader": "^16.0.0",
28
- "@cat-factory/kernel": "0.217.0"
28
+ "@cat-factory/kernel": "0.219.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^26.1.2",