More plans are being planned
This commit is contained in:
parent
dfcbce03d8
commit
36a6bf64d2
10
app_lifecycle.wsd
Normal file
10
app_lifecycle.wsd
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
@startuml Application lifecycle
|
||||||
|
|
||||||
|
control "Event sources (Gateway, rest)" as event_src
|
||||||
|
boundary "Event distributor" as middleware
|
||||||
|
entity "Event sinks (Discord object)" as event_sink
|
||||||
|
|
||||||
|
event_src -> middleware : Incoming event
|
||||||
|
middleware -> event_sink : Event forwarded to the right sink
|
||||||
|
|
||||||
|
@enduml
|
||||||
40
authentication_loop.wsd
Normal file
40
authentication_loop.wsd
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
@startuml Authentication loop
|
||||||
|
|
||||||
|
[*] --> Unauthenticated : Application start
|
||||||
|
Unauthenticated : Reset state, nothing is cached
|
||||||
|
Unauthenticated --> AuthBegin : Start() is called
|
||||||
|
|
||||||
|
state Disconnected {
|
||||||
|
AuthBegin : Start aquiring WS URL
|
||||||
|
AuthBegin --> Websocket_Neutral : Got WS URL
|
||||||
|
Websocket_Neutral : Websocket is waiting for connection
|
||||||
|
Resume_Fail : Clear all cached session data
|
||||||
|
Resume_Fail : Disconnect websocket
|
||||||
|
Resume_Fail --> AuthBegin
|
||||||
|
Reconnect : Disconnect websocket
|
||||||
|
Reconnect --> AuthBegin
|
||||||
|
}
|
||||||
|
Websocket_Connected --> Reconnect : Reconnect event recieved
|
||||||
|
Websocket_Connected --> Reconnect : Websocket closes with a reconnectable close code (or no close code at all)
|
||||||
|
Websocket_Connected --> Reconnect : Invalid session with d set to true
|
||||||
|
Websocket_Connected --> Reconnect : Heartbeat timeout
|
||||||
|
state Websocket_Connected {
|
||||||
|
Websocket_Resume --> Resume_Fail : Invalid session recieved
|
||||||
|
Websocket_Neutral --> Websocket_Ready : Hello packet recieved
|
||||||
|
Websocket_Ready : Start heartbeating
|
||||||
|
Websocket_Ready : Decide to either start new session or resume a previous one
|
||||||
|
Websocket_Ready --> Websocket_Identify : No session to resume
|
||||||
|
Websocket_Identify : Start new session
|
||||||
|
Websocket_Ready --> Websocket_Resume : Previous session is available
|
||||||
|
Websocket_Resume : Try resuming old session
|
||||||
|
Websocket_Resume : This should be transparent, as this is fairly common
|
||||||
|
Websocket_Identify --> Websocket_Running : Ready event recieved
|
||||||
|
Websocket_Resume --> Websocket_Running : Resumed event recieved
|
||||||
|
Websocket_Running : Save session details for resume
|
||||||
|
Websocket_Running : Recieve events and forward them
|
||||||
|
}
|
||||||
|
Websocket_Identify -> Websocket_Disabled : Invalid session recieved
|
||||||
|
Websocket_Connected -> Websocket_Disabled : Rate limit
|
||||||
|
Websocket_Disabled : Wrong credentials or something is really broken
|
||||||
|
|
||||||
|
@enduml
|
||||||
Reference in New Issue
Block a user