Sha256: 0150d4c71c4c9ccb7cfa106098a3b499367fbbf215d4189d1d8546f975ca2997

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

digraph RequestFlow {
    rankdir=TB;
    node [shape=box, style=rounded];
    
    // Message arrival and initial processing
    start [shape=oval, label="Message Arrives"];
    dispatch [label="dispatcher()\nMessage Processing Loop"];
    process [label="process_request(message)"];
    validate [label="validate_schema()"];
    
    // Main processing branch
    receive [label="receive_request()\nAgent Implementation"];
    send [label="send_response()\nOptional Response"];
    
    // Error handling branch
    error [label="Error Handler"];
    error_response [label="Send Error Response"];
    
    // Flow connections
    start -> dispatch;
    dispatch -> process;
    process -> validate;
    
    // Success path
    validate -> receive [label="Valid"];
    receive -> send [style=dashed];
    
    // Error path
    validate -> error [label="Invalid"];
    error -> error_response;
    
    // Styling
    {
        node [shape=note, style=filled, fillcolor=lightyellow];
        note1 [label="Schema validation\nensures message\nintegrity"];
        note2 [label="Custom processing\nin agent subclass"];
    }
    
    // Connect notes
    validate -> note1 [style=dotted, arrowhead=none];
    receive -> note2 [style=dotted, arrowhead=none];
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
agent99-0.0.4 docs/diagrams/request_flow.dot
agent99-0.0.3 docs/diagrams/request_flow.dot