---
id: CON-PFM-TNL-003
name: Lifecycle Participant
feature: FEAT-PFM-TNL-03
product_area: platform
module: tenant-lifecycle
revision: 2
status: draft
product_intent: confirmed
implementation_evidence: observed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  services-submissions: 64236c19be89579ef5897aad7de3925ed3ce03bf
  services-websites: 5fc6823c69d5e6f208c21dba8c0eb3132f8bdc4c
  services-marketing: d071a159fe9782bb71ff246d5c67d5bbfe07fbfa
definition: >-
  A lifecycle participant declares an application area’s resources and the
  operations that build, inspect or remove them.
owned_by: MOD-PFM-TNL
synonyms:
  - participant
  - lifecycle contributor
not_to_be_confused_with:
  - application record ownership
  - durable orchestration
facets:
  - name: Manifest
    meaning: >-
      The published declaration names identity, application, resources,
      defaults, dependencies and supported operations. It is the plan’s account
      of responsibility.
    used_for: Describing application responsibility to the planner.
  - name: Dependencies
    meaning: >-
      A participant names resources it needs established first. Reversing that
      order lets dependents go before their prerequisites during deletion.
    used_for: Ordering build and removal safely.
  - name: Enablement
    meaning: >-
      Platform controls inclusion of remote participants. An application with
      none enabled is absent from orchestration calls, even if its own
      implementation exists.
    used_for: Controlling remote inclusion in orchestration.
  - name: Resource ownership
    meaning: >-
      Table, file and external-resource declarations explain the inventory
      expected from that participant and the available removal method.
    used_for: Accounting for ownership and removal coverage.
  - name: Defaults and ledgers
    meaning: >-
      Seed sets describe starter configuration. The ledger prevents retries and
      later reconciliation from overwriting customer choices.
    used_for: Supplying defaults without reversing customer changes.
  - name: Supported operations
    meaning: >-
      Provisioning, readiness, purge and inventory form the common work; reset,
      initialization and export vary by application and participant.
    used_for: Checking the work a participant can serve.
  - name: Resource registration
    meaning: >-
      Stable external resource names and register rows allow adoption on retry
      and preserve an account of ownership.
    used_for: Adopting stable external resources on retry.
  - name: Export classification
    meaning: >-
      Datasets and withholding decisions explain what a full workspace package
      includes or omits, separately from deletion coverage.
    used_for: Explaining package coverage and omissions.
relationships:
  - to: CON-PFM-TNL-002
    statement: >-
      Participant work supplies the resources required by workspace
      construction.
    provenance: observed
    source: >-
      services-platform:modules/tenants/services/provisioning/provision-tenant-workflow.ts
  - to: CON-PFM-TNL-004
    statement: The loading reset calls participants selected for removal.
    provenance: observed
    source: 'services-platform:modules/tenants/services/lifecycle/reset-participants.ts'
  - to: CON-PFM-TNL-005
    statement: Deletion relies on participant removal and inventory.
    provenance: observed
    source: >-
      services-platform:modules/tenants/services/deletion/tenant-purge-operations.ts
lifecycle: []
acted_on_by:
  - CAP-PFM-TNL-002
  - CAP-PFM-TNL-007
  - CAP-PFM-TNL-008
  - CAP-PFM-TNL-009
  - CAP-PFM-TNL-010
  - CAP-PFM-TNL-012
  - CAP-PFM-TNL-017
visible_to:
  - ACT-PFM-004
  - ACT-PFM-012
evidence:
  - >-
    Inspected source:
    services-platform:modules/tenants/services/provisioning/provision-tenant-workflow.ts
  - >-
    Inspected source:
    services-platform:modules/tenants/services/lifecycle/reset-participants.ts
  - >-
    Inspected source:
    services-platform:modules/tenants/services/deletion/tenant-purge-operations.ts
supersedes: []
intent_sources:
  - >-
    services-platform:docs/tenants/tenant-lifecycle-plan.md#§6 (approved
    2026-10-09)
---

# Lifecycle Participant

## What It Is

A lifecycle participant is an application area’s declaration of responsibility for workspace resources. It tells Platform what that area creates, which other areas it depends on and how it can account for or remove what it owns. A product manager uses the concept to ask whether a complete workspace build or deletion reaches every application area involved.

Participants give orchestration a common vocabulary without transferring ownership of business records. CRM still owns its contacts and Commerce its orders. Platform coordinates their lifecycle work through declared operations. The declaration and implementation must agree for a plan to describe the work that actually runs.

## What It Is Not

A participant is not a customer user or a permission role. Nor is it a durable job. The job invokes participants, while the participant supplies one application’s work and inventory. It is also broader than a table: related records, default configuration and external resources can belong to the same responsibility.

Declaring a resource does not establish that its removal is implemented. A declaration can expose deferred or unsupported coverage, which must remain visible when interpreting completion.

## How It Is Used

Application teams register participants as they introduce workspace-owned resources. Platform uses dependencies to construct the build order and its reverse for removal. A description call can run before a workspace exists, allowing planning without creating records first. Other operations name the workspace and participant being acted on.

Completeness checks compare database tables with declarations and detect omissions or duplicate ownership. Platform additionally keeps remote declarations and enablement switches. Drift between those copies and the owning application can hide resources or stop execution. Staff reviewing a failed plan need the difference identified rather than an unexplained skipped application.

## Its Facets

**Manifest.** The published declaration names identity, application, resources, defaults, dependencies and supported operations. It is the plan’s account of responsibility.

**Dependencies.** A participant names resources it needs established first. Reversing that order lets dependents go before their prerequisites during deletion.

**Enablement.** Platform controls inclusion of remote participants. An application with none enabled is absent from orchestration calls, even if its own implementation exists.

**Resource ownership.** Table, file and external-resource declarations explain the inventory expected from that participant and the available removal method.

**Defaults and ledgers.** Seed sets describe starter configuration. The ledger prevents retries and later reconciliation from overwriting customer choices.

**Supported operations.** Provisioning, readiness, purge and inventory form the common work; reset, initialization and export vary by application and participant.

**Resource registration.** Stable external resource names and register rows allow adoption on retry and preserve an account of ownership.

**Export classification.** Datasets and withholding decisions explain what a full workspace package includes or omits, separately from deletion coverage.

## How It Relates

Provisioning asks participants to build and verify. Loading reset reaches only the participants classified for removal. Deletion purges the planned resources and uses inventory to judge completion. Baseline reconciliation uses participant defaults while the export coordinator uses datasets. Application owners retain responsibility for the records behind these declarations.

## What It Could Become

The product should reconcile Platform’s remote declarations with their owners before relying on full cross-application deletion. Websites also needs removal and inventory for its declared CMS resources. Consistent input validation and clearer optional-operation contracts would make participant boundaries easier to test without turning each implementation detail into another concept.
