๐Ÿ—๏ธ Architecture

Visual Architecture Diagrams & Design Patterns

๐Ÿ“Š Component Architecture

Dynamic Query Framework follows a layered architecture with clear separation of concerns. This diagram shows how components interact across the UI, Controller, Engine, and Data layers.

graph TB subgraph "๐ŸŽจ UI Layer - Lightning Web Components" QV[jtQueryViewer
Main Orchestrator] CB[jtSearchableCombobox
Config Selector] EB[jtExecuteButton
Smart Button] QR[jtQueryResults
Multi-View Display] CM[jtCacheModal
Cache Manager] end subgraph "โš™๏ธ Controller Layer - Apex" QVC[JT_QueryViewerController
Query Execution] MC[JT_MetadataCreator
Config Management] UF[JT_UsageFinder
Usage Search] end subgraph "๐Ÿ’Ž Core Engine" DS[JT_DataSelector
Singleton + Caching] end subgraph "๐Ÿ’พ Data Layer" MD[(Custom Metadata)] DB[(Salesforce DB)] end QV --> CB QV --> EB QV --> QR QV --> CM CB --> QVC EB --> QVC CM --> QVC QVC --> DS MC --> MD UF --> DB DS --> DB DS --> MD style QV fill:#667eea,stroke:#333,stroke-width:3px,color:#fff style DS fill:#764ba2,stroke:#333,stroke-width:3px,color:#fff style QVC fill:#48bb78,stroke:#333,stroke-width:2px

๐Ÿ”„ Query Execution Flow

sequenceDiagram participant User participant LWC as jtQueryViewer participant Ctrl as Controller participant Engine as DataSelector participant DB as Salesforce DB User->>LWC: Select Configuration LWC->>Ctrl: Load Config Metadata Ctrl->>Engine: getRecords(configName) Engine->>DB: Execute SOQL DB-->>Engine: Records Engine-->>Ctrl: List Ctrl-->>LWC: JSON Response LWC-->>User: Display Results

๐Ÿ›ก๏ธ Security Architecture

graph LR User[๐Ÿ‘ค User Request] Check{Enforce Security?} User_Mode[USER_MODE
FLS + CRUD] System_Mode[SYSTEM_MODE
Bypass Security] Query[(Database Query)] User --> Check Check -->|true| User_Mode Check -->|false| System_Mode User_Mode --> Query System_Mode --> Query style User_Mode fill:#48bb78,stroke:#333,stroke-width:2px,color:#fff style System_Mode fill:#f56565,stroke:#333,stroke-width:2px,color:#fff

๐Ÿ’พ Cache Strategy

graph TD Request[Query Request] L1{Instance Cache} L2{Static Cache} L3{Custom Metadata} DB[(Database Query)] Request --> L1 L1 -->|Hit| Return1[โœ… Return Cached] L1 -->|Miss| L2 L2 -->|Hit| Return2[โœ… Return Cached] L2 -->|Miss| L3 L3 -->|Hit| Return3[โœ… Return Metadata] L3 -->|Miss| DB DB --> Return4[๐Ÿ“Š Query Results] style L1 fill:#667eea,stroke:#333,stroke-width:2px,color:#fff style L2 fill:#764ba2,stroke:#333,stroke-width:2px,color:#fff style L3 fill:#48bb78,stroke:#333,stroke-width:2px,color:#fff

๐Ÿ“š Learn More