Status: Accepted
Date: 2026-02-23
Authors: OSHUN Studio Architecture, OSHUN Web + BFF Engineering, OSHUN
Security
Reviewers: Domain Leads (Yemaya, Isis, Hathor, Aja, Bellona), Project
Obsidian Program Design
Context and Problem Statement#
Studio operators need a canonical timeline of material changes across projects, assets, workflows, policy decisions, and incident handling. Existing activity signals are fragmented across domains and lack deterministic sequencing, attribution, and replay semantics.
Without a first-class activity and change feed, OSHUN risks:
- inconsistent operational understanding across teams
- missed high-impact changes and delayed response actions
- weak accountability for actor-level change attribution
- poor auditability for release and governance reviews
Decision Drivers#
- Operational clarity: one timeline for critical Studio changes.
- Determinism: stable ordering and replay semantics for feed consumers.
- Attribution: explicit actor/target/action context for each change.
- Interoperability: shared model across Yemaya/Isis/Hathor/Aja/Bellona.
- Governance: auditable retention and compliance-ready change evidence.
Considered Options#
Option 1: Keep Domain-Specific Change Feeds Only#
Retain independent activity views in each domain without unified Studio model.
Pros:
- Minimal implementation effort.
Cons:
- Fragmented visibility and inconsistent ordering semantics.
- Difficult cross-domain triage and governance review.
Option 2: Unified Feed with Loose Event Schema#
Aggregate domain events but allow permissive/optional event fields.
Pros:
- Faster unification than strict contracts.
Cons:
- Inconsistent payload quality and poor comparability.
- Higher long-term migration and support costs.
Option 3: Canonical Activity + Change Feed with Deterministic Contracts (Chosen)#
Adopt one canonical activity/change feed contract with strict envelope, ordering/replay behavior, actor attribution, and governance controls.
Pros:
- Deterministic cross-domain visibility and triage behavior.
- Strong change attribution and compliance evidence quality.
- Predictable compatibility and migration patterns.
Cons:
- Higher schema governance and rollout coordination effort.
Decision Outcome#
Chosen option: Option 3.
Activity/change feed requirements:
- Canonical change envelope with stable IDs and actor/target metadata.
- Timeline ordering + replay contract for deterministic consumption.
- Attribution/actionability contract for ownership and follow-up routing.
- Compatibility contract for versioning and non-breaking evolution.
- Release governance contract for validation, telemetry, and rollback.
Normative Rules#
Canonical Change Envelope Contract#
- Every feed event must include
changeId,changeType,actor,target, andoccurredAt. - Domain-specific metadata must be nested under canonical extension fields.
- Invalid or incomplete events must not appear in production feeds.
Timeline Ordering and Replay Contract#
- Feed ordering must be deterministic for identical filters.
- Replay requests must use stable cursors and idempotent pagination behavior.
- Late-arriving events must preserve causal metadata and replay safety.
Attribution and Actionability Contract#
- Each change event must identify actor role and affected entity scope.
- Actionable events must include routing references to follow-up workflows.
- Sensitive actor fields must respect RBAC/privacy policy boundaries.
Compatibility Contract#
- Schema changes require compatibility verification against current feed consumers.
- Breaking changes require migration tooling and rollback references.
- Event naming and dimensions must align with analytics taxonomy decisions.
Release Validity Contract#
An activity/change feed release is valid only when all are true:
- envelope validation checks pass
- timeline ordering and replay tests pass
- attribution and actionability checks pass
- telemetry/audit event integrity checks pass
- rollback plan and ownership handoff are documented
Architecture Implications#
- Studio web surfaces expose a unified activity/change timeline workspace.
- BFF aggregates domain events into canonical feed envelopes.
- Domain adapters emit structured change signals into shared ingestion paths.
- Analytics pipelines track change-feed consumption and incident follow-up.
Acceptance Criteria (OST-00145)#
OST-00145 is complete only when:
- ADR exists at
docs/adr/ADR-0037-oshun-studio-activity-and-change-feeds.md. - ADR defines options, trade-offs, and selected strategy.
- ADR defines envelope, ordering/replay, attribution/actionability, compatibility, and release-validity contracts.
- ADR aligns with
ADR-0007throughADR-0030, especiallyADR-0012andADR-0030. - ADR aligns with
docs/releases/v1/design/ux-principles.md,libs/oshun/analytics, andlibs/oshun/domain-registry. - ADR explicitly covers Yemaya, Isis, Hathor, Aja, Bellona, and Project Obsidian.
Consequences#
Positive#
- Faster and more reliable cross-domain operational awareness.
- Stronger governance and incident evidence quality.
- Clear ownership for actor-attributed change actions.
Negative#
- Increased schema governance overhead.
- Requires strict domain adapter compliance and rollout discipline.
Related Decisions#
docs/adr/ADR-0013-oshun-shell-architecture-and-domain-adapters.mddocs/adr/ADR-0018-analytics-taxonomy-and-event-naming.mddocs/adr/ADR-0036-oshun-studio-notification-center.md
References#
libs/oshun/analytics/src/types.tslibs/oshun/domain-registry/src/index.tsdocs/releases/v1/design/ux-principles.mddocs/domains/yemaya/features.mddocs/domains/isis/features.mddocs/domains/hathor/features.mddocs/domains/aja/features.mddocs/domains/bellona/features.md