v3/crates/graphql/graphql-ws/architecture.md
graphql-transport-ws).graphql-transport-ws protocol's
connection_init timeout.Subscription Creation
Polling Mechanism
graph TD
Client -->|Initiates WebSocket Request| WebSocketServer
WebSocketServer -->|Validates Protocol| ProtocolValidation
ProtocolValidation -->|Success| ConnectionEstablishment
ConnectionEstablishment -->|Initialize Session| SessionInit
SessionInit -->|Spawn Tasks| TaskManagement
subgraph TaskManagement
IncomingTask
OutgoingTask
ConnectionExpiryTask
end
IncomingTask -->|Process Messages| ProtocolHandler
OutgoingTask -->|Send Messages| Client
ConnectionExpiryTask -->|Monitor Health| ConnectionState
subgraph ProtocolHandler
ConnectionInit
Subscribe
Complete
PingPong
end
Subscribe -->|Create Subscription| SubscriptionHandling
subgraph SubscriptionHandling
ValidateRequest
ExecutePreParsePlugins
ParseAndNormalizeQuery
GenerateQueryPlan
CreatePoller
end
CreatePoller -->|Start Polling| PollingMechanism
subgraph PollingMechanism
FetchData
ProcessResponse
CompareResults
SendUpdates
end
ProtocolHandler -->|Handle Errors| ErrorHandling
ErrorHandling -->|Send Error Messages| OutgoingTask
TaskManagement -->|Update Metrics| MetricsAndMonitoring
ConnectionState -->|Trigger Cleanup| Cleanup
Complete -->|Stop Subscription| Cleanup
Cleanup -->|Stop Pollers| PollingMechanism
Cleanup -->|Release Resources| ConnectionEstablishment