Skip to content

CAP-PFM-INT-014Deliver subscribed Rhythm changes to integrations

Markdown

CAP-PFM-INT-014

Deliver subscribed Rhythm changes to integrations

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision1

Read atservices-platform ad3f6a65macroservice-libraries 54536a44

The Formal Contract

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

Outcomes
Accepted subscriptions limit the Rhythm changes an integration receives.Repeated delivery failures become visible and can suspend the subscription.
Surfaces
consoleapijob
Intent sources
services-platform:docs/milestones/INTG-M3-webhooks-events-deliveries.md#Objective

Controls

38 controls apply, from the corpus control catalogue.

TC-AVL-001 TC-AVL-004 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-IAM-006 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-005 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-PRV-004 TC-SEC-001 TC-SEC-002 TC-SEC-003 TC-SEC-004 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.integrations.manageapitenant
platform.integrations.readapitenant
platform.integration-executions.operateapitenant

Business Rules

10 rules, 7 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
Subscription creation requires an enabled installation, an event declared and accepted for its current release, a valid shared-condition filter and uniqueness by installation, connection and event type.
validationapi, servicetest
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
02must prove
Proposed
Rhythm changes create deduplicated deliveries projected to declared event fields without system or actor columns, with prior values and changed fields only for event types that declare them.
invariantservice, databasetest
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
03must prove
Proposed
Filters run when a change occurs, recording false or unknown matches as skipped without queued work.
calculationservicetest
services-platform:modules/integrations/tests/integration/services/subscriptions/subscriptions.integration.spec.js#records a delivery its filter refused as skipped_filter, and queues nothing for it
04must prove
Proposed
Push delivery obtains a credential lease and records acknowledgement; failures retry at one, five and thirty minutes, two and six hours and become dead after six attempts.
lifecycleservicetest
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
05must prove
Proposed
Fifty consecutive dead deliveries pause a subscription and notify its administrators once; resume resets the count and paused subscriptions take no changes.
policyservicetest
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
06must prove
Proposed
Acceptance withdrawal atomically pauses active subscriptions for excluded types and records both trails; re-acceptance alone does not resume them.
policyservicetest
07must prove
Proposed
Installation suspension skips delivery without changing active subscription status, so later changes are delivered after resume.
policyservicetest
services-platform:modules/integrations/tests/integration/services/subscriptions/subscription-consent.integration.spec.js#skips a subscription whose installation is suspended, and delivers again once it is resumed
08
Proposed
Operators may restart a dead delivery from its first attempt or replay subscription changes over a requested window.
policyapi, servicetest
09
Proposed
Pull integrations read pending deliveries after their cursor, and cursor advancement marks the covered deliveries delivered.
policyserviceobserved
10
Proposed
Subscription creation, edit and removal enter integration and security history without storing filter values in those trails.
invariantservicetest

Scenarios

IdGivenWhenThenProvenance
01An installed test integration subscribes to contact updates.A coordinator changes the contact in CRM.The integration acknowledges the projected change and its changed fields.test
services-platform:modules/integrations/tests/e2e-adapters/events-dummy.adapters.spec.js#is acknowledged by the dummy’s receiver and recorded delivered

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.