---
id: ADR-MBR-STR-001
title: 'Separate Structure, Configuration and Lifecycle Calculation'
product_area: membership
module: structure
revision: 1
status: proposed
design_intent: proposed
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Membership separates structural records, configuration records and term calculations into three source
  modules, while Memberships owns member records and operational execution.
constrains:
  - SVC-MBR-STR-structure
  - SVC-MBR-STR-configuration
  - SVC-MBR-STR-terms
  - RESP-MBR
  - DOM-MBR-STR-001
  - DOM-MBR-STR-003
  - DOM-MBR-STR-005
origin: >-
  services-membership:README.md#services-membership (the architecture's module split, built phase by phase);
  planning boundary MOD-MBR-STR
alternatives:
  - option: Combine all Membership concerns in one module.
    why_not: >-
      This would obscure independent readers of structure and the term engine's intended reuse; it is an
      examination alternative, not a recorded rejection.
  - option: Move association units into CRM.
    why_not: >-
      CRM organization identity does not describe dated association placement or membership affiliations, so
      that boundary would require a different ownership decision.
consequences:
  - Each source module has its own API composition and permissions.
  - Merge and deletion explicitly call Memberships persistence inside a local transaction.
  - Member holdings and terms remain outside this module's ownership.
supersedes: []
evidence:
  - >-
    services-membership at 5994c270: README.md (layout, the term engine); modules/structure,
    modules/configuration, modules/terms; aws/membership.service.ts
---

# Separate Structure, Configuration and Lifecycle Calculation

## Context

The association map, offering configuration and time calculations serve different readers from individual membership administration. Their boundaries need to remain visible even though they execute within one macroservice.

## Decision

This record describes the existing module split. Structure owns unit arrangement and local facets, Configuration owns offering setup, and Terms supplies calculations; Memberships owns operational member work.

## Alternatives Considered

Combine all Membership concerns in one module. This would obscure independent readers of structure and the term engine's intended reuse; it is an examination alternative, not a recorded rejection. Move association units into CRM. CRM organization identity does not describe dated association placement or membership affiliations, so that boundary would require a different ownership decision.

## Consequences

Each source module has its own API composition and permissions. Merge and deletion explicitly call Memberships persistence inside a local transaction. Member holdings and terms remain outside this module's ownership.
