@startuml comm box ClientProcess #LightBlue Participant Caller Participant CloudPointClient Participant TCPClient end box box UnityProcess #LightGreen Participant TCPServer Participant CloudPointServer Participant UnityWorld end box UnityWorld -> CloudPointServer : init thread activate CloudPointServer CloudPointServer -> TCPServer : await for connection activate TCPServer ->CloudPointClient : init thread activate CloudPointClient CloudPointClient -> TCPClient : createConnection TCPClient -> TCPServer : establish connection TCPServer -> CloudPointServer : established deactivate TCPServer CloudPointServer -> TCPServer : await for calls TCPServer -> TCPServer : await for packet Caller -> CloudPointClient : I want something activate CloudPointClient CloudPointClient -> CloudPointClient : CallMethod CloudPointClient -> TCPClient : send(message) activate TCPClient TCPClient -> TCPServer : packet send TCPServer -> TCPServer : await for packet activate TCPServer TCPServer -> TCPServer : read packet TCPServer -> TCPClient : packet read TCPClient -> CloudPointClient : done deactivate TCPClient CloudPointClient -> TCPClient : await for response activate TCPClient TCPClient -> TCPClient : await for packet TCPServer -> CloudPointServer : callMethod activate CloudPointServer CloudPointServer -> UnityWorld : addToStaticQueue UnityWorld -> UnityWorld : read from queue activate UnityWorld UnityWorld -> UnityWorld : callMethod UnityWorld -> CloudPointServer: set task return value deactivate UnityWorld CloudPointServer -> TCPServer : return task deactivate CloudPointServer TCPServer -> TCPClient : send response TCPClient -> TCPServer : response read TCPClient -> CloudPointClient : response received TCPServer -> CloudPointServer : done deactivate TCPServer CloudPointClient -> Caller : here what you wanted deactivate CloudPointClient Caller -> CloudPointClient : destruct CloudPointClient -> TCPClient : finish waiting deactivate TCPClient deactivate CloudPointClient UnityWorld -> CloudPointServer : destruct deactivate CloudPointServer @enduml