MemoryCache
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:57
In-memory implementation of IVersionedCache maintaining deep detachment parity
with database/network caches via JSON cloning on both set() and get().
Implements revision-fenced coordination:
- Every write and invalidation takes the next value of one cache-wide counter.
- Retains coordination metadata on payload expiry to prevent ABA stale fills.
- An absent key reports the absence revision, which advances to the counter whenever an entry is evicted or the cache is cleared, so dropping a key’s metadata never returns it to a revision a reader observed before the drop.
Type Parameters
Section titled “Type Parameters”T
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new MemoryCache<
T>(options?):MemoryCache<T>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:66
Parameters
Section titled “Parameters”options?
Section titled “options?”defaultTtlMs?
Section titled “defaultTtlMs?”number
maxEntries?
Section titled “maxEntries?”number
Returns
Section titled “Returns”MemoryCache<T>
Properties
Section titled “Properties”isVersioned
Section titled “isVersioned”
readonlyisVersioned:true
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:58
Implementation of
Section titled “Implementation of”Accessors
Section titled “Accessors”Get Signature
Section titled “Get Signature”get size():
number
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:237
Current number of keys in the in-memory cache.
Returns
Section titled “Returns”number
Methods
Section titled “Methods”clear()
Section titled “clear()”clear():
Promise<void>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:229
Purges all keys from the in-memory cache. Every revision observed before
the purge, including an observed absence, is rejected by a later tryFill.
Returns
Section titled “Returns”Promise<void>
delete()
Section titled “delete()”delete(
key):Promise<void>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:221
Removes the value and advances the key’s revision, as invalidate() does.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”get(
key):Promise<T|undefined>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:208
Retrieves a cached value, checking TTL and returning a detached clone.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<T | undefined>
Implementation of
Section titled “Implementation of”invalidate()
Section titled “invalidate()”invalidate(
key):Promise<string>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:127
Atomically advances the key revision and removes the value.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<string>
Implementation of
Section titled “Implementation of”readState()
Section titled “readState()”readState(
key):Promise<CacheStateEntry<T>>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:104
Observes current key state and opaque revision token.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Implementation of
Section titled “Implementation of”set(
key,value,options?):Promise<void>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:168
Stores a value in memory, cloning it via JSON round-trip to guarantee detachment.
Enforces TTL expiration and optional atomic CAS stale-write protection (isNewer).
Parameters
Section titled “Parameters”string
T
options?
Section titled “options?”Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”tryFill()
Section titled “tryFill()”tryFill(
key,observedRevision,value,options?):Promise<boolean>
Defined in: packages/ddd-core/persistence/cache/memory.cache.ts:145
Atomically checks that current revision matches observedRevision, writes
value, and advances revision on match.
Parameters
Section titled “Parameters”string
observedRevision
Section titled “observedRevision”string
T
options?
Section titled “options?”Returns
Section titled “Returns”Promise<boolean>