Skip to content

Commit cf52a65

Browse files
thorajclaude
andcommitted
docs: Refine DESIGN.md requirements and use cases
Remove non-essential items from requirements: - Motivation: Remove retention strategies (use case, not design motivation) - Functional requirements: Remove sync/async (implicit) and flexible routing (never a design goal) - Technical requirements: Remove "support all operations" (implicit in backward compat) Clarify when to use multi-context: - Good use cases: Remove retention policies bullet - Not recommended: Remove performance comment (multi-context CAN improve performance via smaller policy sets) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 3a201cc commit cf52a65

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

MULTI_CONTEXT_DESIGN.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ This document provides technical architecture and implementation details for mul
1515

1616
### Motivation
1717
- Store different policy types in separate schemas/tables
18-
- Apply different retention strategies per policy type
1918
- Enable multi-tenant scenarios with separate contexts
2019
- Separate concerns for organizational requirements
2120

@@ -25,14 +24,11 @@ This document provides technical architecture and implementation details for mul
2524
1. Route policy types to different `DbContext` instances
2625
2. Maintain ACID guarantees when contexts share connections
2726
3. Preserve backward compatibility
28-
4. Support sync and async operations
29-
5. Allow flexible user-defined routing logic
3027

3128
**Technical:**
3229
1. Use EF Core's `UseTransaction()` for shared transactions
33-
2. Support all existing operations (Load, Save, Add, Remove, Update, Filter)
34-
3. Detect connection compatibility at runtime
35-
4. Gracefully degrade to individual transactions when sharing is not possible
30+
2. Detect connection compatibility at runtime
31+
3. Gracefully degrade to individual transactions when sharing is not possible
3632

3733
**Non-Requirements:**
3834
- Distributed transactions across different databases/servers
@@ -444,12 +440,10 @@ Multiple contexts incur:
444440

445441
**Good Use Cases:**
446442
- Separate policy and grouping data for compliance
447-
- Apply different retention policies per type
448443
- Multi-tenant routing with tenant-specific contexts
449444
- Organizational separation of concerns
450445

451446
**Not Recommended For:**
452-
- Performance optimization (adds overhead, not reduces it)
453447
- Cross-database scenarios requiring atomicity
454448
- Simple authorization models (single context sufficient)
455449

0 commit comments

Comments
 (0)