StoreCapabilities
@rotorsoft/act-root / act-tck/src / StoreCapabilities
Type Alias: StoreCapabilities
StoreCapabilities =
object
Defined in: libs/act-tck/src/store-tck.ts:39
Optional features a Store implementation may or may not
support. Default to false โ only enable a flag when the adapter
exposes the corresponding surface and you want the TCK to cover it.
Propertiesโ
concurrent_claim?โ
readonlyoptionalconcurrent_claim?:boolean
Defined in: libs/act-tck/src/store-tck.ts:80
Adapter supports competing consumers โ two workers may call
claim() concurrently and the store hands each stream to at most
one of them (PostgreSQL via FOR UPDATE SKIP LOCKED; the in-memory
store via single-threaded atomic claim). When true, the TCK runs
the concurrency suite. Single-writer embedded stores (e.g. SQLite,
where concurrent write transactions raise SQLITE_BUSY rather than
serializing) leave this false: their deployment model is a single
drain worker per database file.
notify?โ
readonlyoptionalnotify?:boolean
Defined in: libs/act-tck/src/store-tck.ts:52
Adapter implements Store.notify. When true, the TCK runs
the cross-instance conformance cases: a listener receives commits
from a sibling instance produced by the same factory, never its
own commits (the port's self-filtering MUST), and exactly one
notification per commit transaction carrying the full event batch.
Requires the factory to produce instances sharing one backing
store โ e.g. two PostgresStores on the same schema/table, or two
withBroker decorators on one broker. True cross-process
LISTEN/NOTIFY plumbing needs two processes and stays in the
adapter's own suite.
pattern_claim_source?โ
readonlyoptionalpattern_claim_source?:boolean
Defined in: libs/act-tck/src/store-tck.ts:106
Adapter matches a pattern reaction source (one carrying regex
metacharacters, e.g. the calculator's ^(A|B)$) as a full RegExp in
claim()'s has-work probe, so a stream whose max event id exceeds the
subscription watermark is claimed when its name matches the pattern.
When true, the TCK runs the pattern-source claim suite. Literal
sources stay exact everywhere regardless of this flag โ the fast,
index-friendly path.
Stores that cannot run an arbitrary regex against candidate streams
(e.g. SQLite, whose libsql build has no REGEXP and whose portable
LIKE grammar cannot express alternation/grouping) leave this
false and instead reject a non-portable claim source at
subscribe time โ see rejects_nonportable_claim_source.
pii_isolation?โ
readonlyoptionalpii_isolation?:boolean
Defined in: libs/act-tck/src/store-tck.ts:69
Adapter supports sensitive-data isolation (#566): accepts the
optional pii field on commit messages, returns it on load
outputs, and implements Store.forget_pii. When true,
the TCK runs the PII isolation suite โ commit-with-pii
round-trip, commit-without-pii passthrough, forget_pii happy
path, idempotency, and isolation across streams.
rejects_nonportable_claim_source?โ
readonlyoptionalrejects_nonportable_claim_source?:boolean
Defined in: libs/act-tck/src/store-tck.ts:116
Adapter cannot faithfully match every regex claim source, so it
fails loud at registration: subscribe throws
ValidationError for a source outside its portable subset
(alternation/grouping like ^(A|B)$), rather than silently never
claiming the stream. When true, the TCK runs the reject-at-subscribe
case. Currently only SQLite sets this โ its message points operators
to InMemory/PG for full regex claim sources.
restore?โ
readonlyoptionalrestore?:boolean
Defined in: libs/act-tck/src/store-tck.ts:60
Adapter implements Store.restore. When true, the TCK
runs the full restore suite โ empty-source / single-stream /
multi-stream happy paths, ISO-string created, pre-existing
wipe, subscription clearing, causation remap, and atomic
rollback on mid-iteration throw.
source_matches?โ
readonlyoptionalsource_matches?:boolean
Defined in: libs/act-tck/src/store-tck.ts:90
Adapter implements the QueryStreams.source_matches reverse-
match filter โ "subscriptions whose stored source pattern matches
at least one of these names" (name ~ source). When true, the TCK
runs the source_matches suite. Stores that can't express reverse-
regex (e.g. an anchor-aware LIKE approximation) leave it false;
the close-cycle safety probe then falls back to an unfiltered scan,
so correctness never depends on this flag โ only probe cost.