A method for establishing a communication session between a client device and a stateful host, comprising: providing a client identity token from the client device to an authorization service, wherein the client identity token has been generated based on user credentials of a user of the client device; at the authorization service, determining, using the identity token, whether the client device is authorized to establish an authoring session with a stateful host hosted by a cloud service; when it is determined that the client device is authorized to establish the authoring session, generating , at the authorization service, a client authorization token that includes a unique identifier associated with the client identity token; sending the client authorization token to the client device; sending (S540) the unique identifier to an instruction queue; generating , by the cloud service, the stateful host on a virtual machine based on the unique identifier received from the instruction queue; associating, by the cloud service the unique identifier with the stateful host; determining, by the cloud service an internet protocol address associated with the stateful host; associating , by the cloud service, the internet protocol address with the unique identifier to create a name-value pair; securely storing the name-value pair in the cloud service; and using , by the cloud service, the name-value pair to establish the authoring session between the client device and the stateful host, wherein the method further comprises re-establishing the authoring session between the client device and the stateful host after an unexpected event, wherein re-establishing the authoring session comprises the client device accessing the client authorization token and the cloud service determining the internet protocol address associated with the unique identifier. providing a client identity token from the client device to an authorization service, wherein the client identity token has been generated based on user credentials of a user of the client device; at the authorization service, determining, using the identity token, whether the client device is authorized to establish an authoring session with a stateful host hosted by a cloud service; when it is determined that the client device is authorized to establish the authoring session, generating , at the authorization service, a client authorization token that includes a unique identifier associated with the client identity token; sending the client authorization token to the client device; sending (S540) the unique identifier to an instruction queue; generating , by the cloud service, the stateful host on a virtual machine based on the unique identifier received from the instruction queue; associating, by the cloud service the unique identifier with the stateful host; determining, by the cloud service an internet protocol address associated with the stateful host; associating , by the cloud service, the internet protocol address with the unique identifier to create a name-value pair; securely storing the name-value pair in the cloud service; and using , by the cloud service, the name-value pair to establish the authoring session between the client device and the stateful host, wherein the method further comprises re-establishing the authoring session between the client device and the stateful host after an unexpected event, wherein re-establishing the authoring session comprises the client device accessing the client authorization token and the cloud service determining the internet protocol address associated with the unique identifier. <EOS>