The event as one subscriber may see it. A subscriber whose read of the entity is row-filtered gets the entity, the action and
the time, and neither the key nor the row: "something in this entity changed", which the client already takes as a
whole-entity invalidation (a null key on remote-invalidate). Everyone else gets the event as published.
Memoized per (payload, entity, roleFingerprint) via the active broadcast provider so $N$ subscribers
sharing $R$ role buckets only allocate and evaluate ReadIsRowFiltered $R$ times per event.
The event as one subscriber may see it. A subscriber whose read of the entity is row-filtered gets the entity, the action and the time, and neither the key nor the row: "something in this entity changed", which the client already takes as a whole-entity invalidation (a null key on
remote-invalidate). Everyone else gets the event as published.Memoized per
(payload, entity, roleFingerprint)via the active broadcast provider so $N$ subscribers sharing $R$ role buckets only allocate and evaluateReadIsRowFiltered$R$ times per event.