Skip to content

Add StreamData local command model properties - #8

Open
jeregrine wants to merge 1 commit into
mainfrom
add-local-model-properties
Open

Add StreamData local command model properties#8
jeregrine wants to merge 1 commit into
mainfrom
add-local-model-properties

Conversation

@jeregrine

Copy link
Copy Markdown
Member

Problem

Hand-written scenarios cover individual Group behaviors, but interactions between metadata updates, owner death, subscriptions, and named-cluster cleanup can leave gaps. Dual-index consistency alone cannot detect two indexes that agree on incorrect contents.

Fix

Add StreamData command histories checked against an independent map/set model. After every command, compare public API results, complete local entries, exact and prefix queries, counts, monitor events, and ETS dual-index consistency across the default and named clusters.

Each example and shrink attempt gets fresh supervisors, symbolic owners backed by real processes, and a dedicated observer. Owner-death cleanup is explicitly settled before checking state and events. Reusing bounded process names avoids atom growth during shrinking.

Supporting information

The generator varies shard counts and favors a small set of shared keys, owners, and metadata values to exercise collisions and repeated operations. StreamData is a test-only dependency; production behavior is unchanged.

This is the local correctness foundation. Remote batch boundaries, equal-timestamp conflicts, stale replication, TTL, and fairness need separate targeted properties. Reproducing a generated history does not reproduce BEAM scheduling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant