graph TB
subgraph "Current Problematic Architecture"
User[Product Manager/Data Engineer]
User --> |"Must write CEL"| CEL["value.user.id != null && value.user.email.matches('.*@.*')"]
CEL --> |"Hardcoded paths"| Rule[DataQualityRule]
Rule --> |"Tightly coupled"| Policy[DataQualityPolicy]
Policy --> |"Applied to"| Topics[Kafka Topics]
Rule -.->|"Non-reusable"| X1[❌ Can't reuse across schemas]
CEL -.->|"Technical barrier"| X2[❌ High learning curve]
Policy -.->|"Maintenance burden"| X3[❌ Schema changes break rules]
end
style X1 fill:#ffebee
style X2 fill:#ffebee
style X3 fill:#ffebee
journey
title Data Quality Rule Creation Journey
section Current Experience
Learn CEL syntax: 2: User
Understand schema structure: 2: User
Write complex expressions: 1: User
Test and debug: 1: User
Deploy and pray: 2: User
Maintain when schema changes: 1: User
section Proposed Experience
Browse rule templates: 5: User
Select appropriate template: 5: User
Configure via forms: 4: User
Map fields visually: 4: User
Preview and test: 5: User
Deploy with confidence: 5: User
Auto-adapt to schema changes: 5: User
graph TB
subgraph "Proposed Template-Based Architecture"
User[Product Manager/Data Engineer]
subgraph "Rule Template Library"
RT1[Field Not Null Template]
RT2[Format Validation Template]
RT3[Range Check Template]
RT4[Custom Business Rule Template]
end
subgraph "Rule Instance Layer"
RI1[User ID Required Instance]
RI2[Email Format Instance]
RI3[Age Range Instance]
RI4[Revenue Threshold Instance]
end
subgraph "Configuration"
FM[Field Mappings]
PV[Parameter Values]
TS[Target Schema]
end
User --> |"Selects from"| RT1
RT1 --> |"Creates"| RI1
RI1 --> FM
RI1 --> PV
RI1 --> TS
RI1 --> Policy[Enhanced DataQualityPolicy]
RI2 --> Policy
RI3 --> Policy
RI4 --> Policy
Policy --> Topics[Kafka Topics]
FM -.->|"Reusable"| Green1[✅ Same logic, different fields]
RT1 -.->|"User-friendly"| Green2[✅ No CEL knowledge required]
RI1 -.->|"Maintainable"| Green3[✅ Schema evolution support]
end
style Green1 fill:#e8f5e8
style Green2 fill:#e8f5e8
style Green3 fill:#e8f5e8
gantt
title Trust Product Enhancement Roadmap
dateFormat YYYY-MM-DD
section Phase 1: Foundation
Rule Template Engine :p1-1, 2024-01-01, 45d
Core Template Library :p1-2, 2024-01-15, 60d
Migration Tool :p1-3, 2024-02-01, 30d
Basic Field Mapping UI :p1-4, 2024-02-15, 45d
section Phase 2: User Experience
Visual Rule Builder :p2-1, 2024-03-15, 45d
Schema-Aware Field Selector :p2-2, 2024-04-01, 30d
Rule Testing & Preview :p2-3, 2024-04-15, 30d
Extended Template Library :p2-4, 2024-05-01, 30d
section Phase 3: Advanced Features
Rule Composition Engine :p3-1, 2024-06-01, 45d
Conditional Rules :p3-2, 2024-06-15, 45d
Team Template Sharing :p3-3, 2024-07-01, 30d
Schema Evolution Handling :p3-4, 2024-07-15, 45d
section Phase 4: Platform
Template Marketplace :p4-1, 2024-09-01, 45d
API & Integrations :p4-2, 2024-09-15, 45d
Advanced Analytics :p4-3, 2024-10-01, 30d
CI/CD Integration :p4-4, 2024-10-15, 30d
flowchart TD
subgraph "Current State"
CS1[High Technical Barrier]
CS2[Limited User Base]
CS3[High Support Overhead]
CS4[Low Adoption Rate]
CS5[Limited Revenue Growth]
CS1 --> CS2
CS2 --> CS4
CS1 --> CS3
CS4 --> CS5
end
subgraph "Future State"
FS1[User-Friendly Templates]
FS2[Expanded User Base]
FS3[Self-Service Capability]
FS4[High Adoption Rate]
FS5[Revenue Growth]
FS6[Competitive Advantage]
FS1 --> FS2
FS1 --> FS3
FS2 --> FS4
FS3 --> FS4
FS4 --> FS5
FS4 --> FS6
end
subgraph "Transformation Metrics"
M1[5x Rules Created Per Customer]
M2[30% Higher Customer Satisfaction]
M3[60% Reduction in Support Tickets]
M4[2x Customer Expansion Rate]
end
FS4 --> M1
FS3 --> M3
FS6 --> M2
FS5 --> M4
style CS1 fill:#ffebee
style CS2 fill:#ffebee
style CS3 fill:#ffebee
style CS4 fill:#ffebee
style CS5 fill:#ffebee
style FS1 fill:#e8f5e8
style FS2 fill:#e8f5e8
style FS3 fill:#e8f5e8
style FS4 fill:#e8f5e8
style FS5 fill:#e8f5e8
style FS6 fill:#e8f5e8
style M1 fill:#e3f2fd
style M2 fill:#e3f2fd
style M3 fill:#e3f2fd
style M4 fill:#e3f2fd
classDiagram
class RuleTemplate {
+String id
+String name
+String description
+RuleCategory category
+List~RuleParameter~ parameters
+RuleImplementation implementation
+validate()
+generateInstance()
}
class RuleInstance {
+String id
+String templateId
+String name
+Map~String,FieldSelector~ fieldMappings
+Map~String,Any~ parameterValues
+SchemaReference targetSchema
+execute()
+updateMappings()
}
class FieldSelector {
+String path
+FieldType type
+Boolean optional
+validate()
}
class DataQualityPolicy {
+String name
+List~String~ ruleInstanceIds
+List~Target~ targetSelectors
+List~Action~ actions
+apply()
}
class TemplateLibrary {
+Map~String,RuleTemplate~ templates
+searchByCategory()
+getPopularTemplates()
+addCustomTemplate()
}
RuleTemplate ||--o{ RuleInstance : creates
RuleInstance ||--o{ FieldSelector : contains
DataQualityPolicy ||--o{ RuleInstance : references
TemplateLibrary ||--o{ RuleTemplate : manages
graph TB
subgraph "Frontend Layer"
UI[Template-Based UI]
VRB[Visual Rule Builder]
FSM[Field Selector & Mapper]
RP[Rule Preview]
end
subgraph "Service Layer"
TS[Template Service]
RIS[Rule Instance Service]
SM[Schema Manager]
VE[Validation Engine]
end
subgraph "Data Layer"
TR[Template Repository]
RIR[Rule Instance Repository]
SR[Schema Repository]
PR[Policy Repository]
end
subgraph "External Systems"
SchemaReg[Schema Registry]
Kafka[Kafka Clusters]
Gateway[Conduktor Gateway]
end
UI --> TS
VRB --> RIS
FSM --> SM
RP --> VE
TS --> TR
RIS --> RIR
SM --> SR
VE --> Gateway
SM <--> SchemaReg
Gateway --> Kafka
style UI fill:#e3f2fd
style VRB fill:#e3f2fd
style FSM fill:#e3f2fd
style RP fill:#e3f2fd