Commit 1d24cc8b authored by Abdul Wadood's avatar Abdul Wadood 2️⃣ Committed by Adam Hegyi
Browse files

Update ADR 003 from lookup-based to propagation-based state inheritance

parent f211e898
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ See [005: Migration Strategy and Backward Compatibility](decisions/005_migration

**Optimization strategies:**

- Reduced database writes by not propagating state to descendants and using state inheritance through ancestor lookup
- Fast reads by propagating state to descendants, eliminating ancestor lookups at read time
- Database indexes on `state` and related columns

## Metrics and success criteria
@@ -112,7 +112,7 @@ See [005: Migration Strategy and Backward Compatibility](decisions/005_migration

- [001: Unified State Management System](decisions/001_unified_state_management.md)
- [002: Asynchronous Operations Guidelines](decisions/002_asynchronous_operations.md)
- [003: State Inheritance Model](decisions/003_state_inheritance_model.md)
- [003: State Propagation Model](decisions/003_state_propagation_model.md)
- [004: State Changes Audit Integration](decisions/004_state_changes_audit_integration.md)
- [005: Migration Strategy and Backward Compatibility](decisions/005_migration_strategy_and_backward_compatibility.md)
- [006: State Preservation](decisions/006_state_preservation.md)
@@ -125,7 +125,7 @@ See [005: Migration Strategy and Backward Compatibility](decisions/005_migration

**Risk: Performance impact during migration**

- *Mitigation:* Ancestor lookup is similar to the status quo, feature flags, monitoring
- *Mitigation:* Batched propagation via tree iterator with cursor-based DFS, feature flags, monitoring

**Risk: API breaking changes**

+2 −2
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ We will implement a unified state management system for all namespace types usin

2. **Standardized States**:

   - `0` - ancestor_inherited (State inherited from ancestor or normal operational state)
   - `0` - active (Default state with no restrictions applied, also referred to as ancestor_inherited)
   - `1` - archived (Archived but recoverable)
   - `2` - deletion_scheduled (Marked for deletion with grace period)
   - `3` - creation_in_progress (Currently being created)
@@ -167,7 +167,7 @@ end
### Positive Consequences

- **Consistency**: Unified behavior across all namespace types
- **Performance**: State inheritance eliminates need for descendant propagation, reducing database writes
- **Performance**: State propagation to descendants enables fast reads without ancestor lookups
- **Maintainability**: Single codebase for state management reduces duplication
- **Scalability**: Supports asynchronous operations for heavy state changes

+594 −0

File changed and moved.

Preview size limit exceeded, changes collapsed.