Marketing Audiences

Summary

Audiences bridge saved selection logic and run-owned member state. They should be previewable during authoring and materialized deterministically during execution.

Problem

If a campaign reads a live audience definition at every step, later edits can change the meaning of an already-started run.

Principle

Authoring defines the audience; runtime freezes the selected members for a specific run.

Platform Shape

Audience studio owns authoring and preview behavior. Runtime audience and member packages turn those definitions into CampaignAudienceRun, Member, and related execution state. This keeps campaign history explainable after authoring changes.

Source Evidence

  • docs/domains/marketing.md
  • services/marketing/authoring/audience_studio
  • services/marketing/runtime/audience
  • services/marketing/runtime/members
  • docs/engineering/concepts/marketing-module-map.md
  • docs/engineering/concepts/marketing-run-render-action-model.md