Skip to content

FAS-PFM-INT-04Integration messages and subscriptions acceptance

Markdown

FAS-PFM-INT-04

Integration messages and subscriptions acceptance

Markdown
  • DocumentProposed
  • Product intentProposed

Product areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision2

Read atservices-platform ad3f6a65macroservice-libraries 54536a44react-console baf6dae3

Scenarios

5 scenarios proving FEAT-PFM-INT-04 as a whole.

01 Messages retain traceable delivery identities behaviour proposed
Exercises
CAP-PFM-INT-013 CAP-PFM-INT-014 CAP-PFM-INT-015
Relies on
ATS-PFM-INT-013-03 ATS-PFM-INT-014-02 ATS-PFM-INT-015-02
Preconditions
An endpoint, a matching event consumer and an accepted change subscription are available.
Steps
Process a valid provider notification and route its event; separately raise a subscribed business change.
Expected
The notification, routed event and projected subscription delivery each retain their own traceable identity.
Data
Run-owned declarations, records and role fixtures in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/webhooks/webhook-worker.integration.spec.js#rejects a request whose signature does not verify, writing no event,services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#turns a CRM change event into a queued delivery of the catalog projection, never the row,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#records an event every consumer handled or ignored as delivered, to each of them
02 Signature refusal prevents downstream event delivery interaction proposed
Exercises
CAP-PFM-INT-013 CAP-PFM-INT-015
Relies on
ATS-PFM-INT-013-03 ATS-PFM-INT-015-02
Preconditions
A matching consumer is registered for a provider event.
Steps
Process valid and tampered notifications and dispatch only the emitted events.
Expected
The valid event reaches the consumer and the tampered notification creates no downstream event.
Data
Run-owned declarations, records and role fixtures in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/webhooks/webhook-worker.integration.spec.js#rejects a request whose signature does not verify, writing no event,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#records an event every consumer handled or ignored as delivered, to each of them
03 Failures retain bounded recovery records lifecycle proposed
Exercises
CAP-PFM-INT-014 CAP-PFM-INT-015
Relies on
ATS-PFM-INT-014-04 ATS-PFM-INT-014-05 ATS-PFM-INT-015-02
Preconditions
A subscription and event consumer repeatedly fail.
Steps
Exhaust their delivery and routing attempts, inspect dead records and explicitly resume a failure-paused subscription.
Expected
Failed work remains visible after finite retries and resume restores subscription eligibility.
Data
Run-owned declarations, records and role fixtures in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#retries a classified failure with the async backoff and records the delivery dead after six attempts,services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#pauses a subscription after fifty dead deliveries in a row and tells its administrators once,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#records an event every consumer handled or ignored as delivered, to each of them
04 Readers cannot use secrets or staff-wide recovery access permissionnegative proposed
Exercises
CAP-PFM-INT-013 CAP-PFM-INT-014 CAP-PFM-INT-015
Relies on
ATS-PFM-INT-013-08 ATS-PFM-INT-014-01 ATS-PFM-INT-015-06
Preconditions
A workspace reader and Rhythm operator are available.
Steps
Inspect messages and subscriptions as the reader and request cross-workspace event inspection as each identity.
Expected
Reader answers omit secrets and staff-wide inspection remains restricted to the operator.
Data
Run-owned declarations, records and role fixtures in an isolated workspace.
Source
services-platform:modules/integrations/tests/e2e/reader-access.e2e.spec.js#reads no webhook signing secret in any answer,services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#refuses a subscription to a type the installation has not accepted, naming the type, and writes nothing,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#lists the events nobody took for Rhythm HQ, across tenants
05 Duplicate work keeps one delivery identity regressionnegative proposed
Exercises
CAP-PFM-INT-014 CAP-PFM-INT-015
Relies on
ATS-PFM-INT-014-02 ATS-PFM-INT-015-05
Preconditions
A change subscription and a routed event already have claimed work.
Steps
Fan out the same change twice and redeliver its already attempted dispatch.
Expected
Only one projected delivery exists and stale routing work performs no further attempt.
Data
Run-owned declarations, records and role fixtures in an isolated workspace.
Source
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#turns a CRM change event into a queued delivery of the catalog projection, never the row,services-platform:modules/integrations/tests/integration/services/events/event-router.integration.spec.js#does nothing for a message of an attempt already made

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.