Skip to content

CAP-PFM-NOT-005Combine repeated events into one notice

Markdown

CAP-PFM-NOT-005

Combine repeated events into one notice

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleStaff Notifications and Association CommunicationsRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Matching event bursts share one recipient notice.Withdrawal updates folded content when rerendering remains possible.
Surfaces
job
Intent sources
services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scopeservices-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S11

Controls

27 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-PI-001 TC-PI-003 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-VEN-001 TC-VEN-002 TC-VEN-003

Business Rules

8 rules, 8 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Within the configured collapse interval, requests for the same definition, recipient and subject record can share a notice; the default interval is two minutes; zero disables collapse; Different records or recipients remain separate.
no proof recorded yet
calculationservicetest
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds five requests into one notification carrying the latest data and the count
02must prove
Proposed
Only applicable, unread and unarchived notices accept another contribution; Otherwise processing creates a fresh unread notice.
no proof recorded yet
policyservicetest
03must prove
Proposed
When both contributions specify a scope, collapse requires equal scopes; a contribution without a scope can match a scoped notice.
no proof recorded yet
policyservicetest
04must prove
Proposed
Collapse adopts the latest contribution's data and wording, increases the contribution count and retains the latest fifty request references.
no proof recorded yet
calculationservicetest
05must prove
Proposed
A transaction lock serializes matching recipient, definition, record and scope identities; work with a different lock identity proceeds independently.
no proof recorded yet
invariantservice, databasetest
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#folds ten requests dispatched at the same moment into one notification of collapsed count nine
06must prove
Proposed
Removing a contribution reduces the count and can move ownership to the oldest remaining open request; Removing the latest contribution refreshes wording when renderable; removing the final contribution supersedes the notice.
no proof recorded yet
lifecycleservicetest
services-platform:modules/notifications/tests/integration/services/orchestration/cancel-and-supersede.integration.spec.js#keeps the notification when the first of its requests ends, handing it to the next and dropping the count
07must prove
Proposed
An occurrence produces at most one notice for each recipient even when repeated requests cross monthly boundaries.
no proof recorded yet
invariantservice, databasetest
08must prove
Proposed
When link data has been redacted or the recipient is no longer eligible, a collapsed notice retains its earlier wording rather than re-rendering after withdrawal.
no proof recorded yet
policyserviceobserved

Scenarios

IdGivenWhenThenProvenance
01Jane receives five Batch posting assignment events within two minutes with different ending dates.All matching events pass through processing.One unread item presents the latest details and four additional collapsed contributions.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.