DTDE Wiki¶
Welcome to the Distributed Temporal Data Engine (DTDE) Wiki! This section contains detailed API reference documentation, architecture guides, and comprehensive class documentation.
π Documentation Index¶
Core Documentation¶
| Document | Description |
|---|---|
| Architecture | System design, components, and data flow |
| API Reference | Complete API documentation |
| Configuration | All configuration options explained |
| Classes Reference | Detailed class and interface documentation |
| Troubleshooting | Common issues, FAQ, and solutions |
Quick Links¶
- π Quickstart Guide
- π Getting Started
- π Sharding Guide
- β±οΈ Temporal Guide
Package Overview¶
Dtde.EntityFramework¶
The main package providing EF Core integration:
Key Namespaces: - Dtde.EntityFramework - Core DbContext and extensions - Dtde.EntityFramework.Configuration - Options and builders - Dtde.EntityFramework.Query - Query execution - Dtde.EntityFramework.Update - Write operations
Dtde.Core¶
Core domain model and utilities:
Key Namespaces: - Dtde.Core.Metadata - Shard and entity metadata - Dtde.Core.Sharding - Sharding strategies - Dtde.Core.Temporal - Temporal context
Dtde.Abstractions¶
Interfaces and contracts:
Key Namespaces: - Dtde.Abstractions.Metadata - Metadata interfaces - Dtde.Abstractions.Temporal - Temporal interfaces
Architecture Overview¶
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Application Code β
β Standard EF Core LINQ Queries β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Dtde.EntityFramework β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββ β
β β DtdeDbContextβ β Query Engine β β Update Engine β β
β β β β (Sharded) β β (Write Router) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββ΄ββββββββββββββββ
βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β Table Sharding β β Database Sharding β
β (Same Database) β β (Multiple Databases) β
β βββββββββββββββββββββ β β βββββββββββββββββββββ β
β βTbl_1ββTbl_2ββTbl_3β β β βDB_1 ββDB_2 ββDB_3 β β
β βββββββββββββββββββββ β β βββββββββββββββββββββ β
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
Key Concepts¶
1. Transparent Sharding¶
DTDE intercepts EF Core queries and transparently routes them to multiple shards:
// You write standard EF Core:
var customers = await db.Customers.Where(c => c.Region == "EU").ToListAsync();
// DTDE handles:
// - Shard resolution
// - Parallel execution
// - Result merging
2. Property-Agnostic Design¶
No hardcoded property names. Configure any property for sharding or temporal:
// Any property can be a shard key
entity.ShardBy(c => c.Region);
entity.ShardBy(o => o.Year);
entity.ShardBy(p => p.Category);
// Any DateTime properties for temporal
entity.HasTemporalValidity(c => c.EffectiveDate, c => c.ExpirationDate);
entity.HasTemporalValidity(p => p.StartDate, p => p.EndDate);
3. Optional Temporal Versioning¶
Temporal is opt-in. Entities can use: - Sharding only (default) - Temporal only - Both together - Neither (standard EF Core)
Version History¶
| Version | Date | Notes |
|---|---|---|
| 1.0.0 | - | Initial release |
Contributing¶
See the development plan for technical details and contribution guidelines.