A method comprising: receiving, by a messaging server, an original message from a first device, which is separate from the messaging server; storing, by the messaging server the original message in a message database; transmitting, by the messaging server, a notification indicating that the original message is available for a second device; receiving, by the messaging server, a request for new data from the second device, which is separate from the messaging server, wherein the second device transmits the request in response to receiving the message notification; transmitting, by the messaging server, the original message from the message database to the second device, wherein the second device displays the original message, and wherein the second device stores the original message in a local cache of the second device; receiving, by the messaging server, an edited message comprising an edited version of the original message; storing, by the messaging server, the edited message in the message database; marking, by the messaging server, the original message as invalid or deleted, such that devices are no longer able to access the original message; transmitting, by the messaging server, an instruction to the second device to delete the original message from the local cache of the second device, wherein in response to the instruction the second device deletes automatically the original message from the local cache of the second device; and transmitting, by the messaging server, the edited message from the message database to the second device, wherein the second device displays the edited message, wherein the second device stores the edited message in the local cache of the second device. receiving, by a messaging server, an original message from a first device, which is separate from the messaging server; storing, by the messaging server the original message in a message database; transmitting, by the messaging server, a notification indicating that the original message is available for a second device; receiving, by the messaging server, a request for new data from the second device, which is separate from the messaging server, wherein the second device transmits the request in response to receiving the message notification; transmitting, by the messaging server, the original message from the message database to the second device, wherein the second device displays the original message, and wherein the second device stores the original message in a local cache of the second device; receiving, by the messaging server, an edited message comprising an edited version of the original message; storing, by the messaging server, the edited message in the message database; marking, by the messaging server, the original message as invalid or deleted, such that devices are no longer able to access the original message; transmitting, by the messaging server, an instruction to the second device to delete the original message from the local cache of the second device, wherein in response to the instruction the second device deletes automatically the original message from the local cache of the second device; and transmitting, by the messaging server, the edited message from the message database to the second device, wherein the second device displays the edited message, wherein the second device stores the edited message in the local cache of the second device.