Делаем достаточно просто. Локальная структура хранит два идентификатора, один полностью локальный, другой - тот ид что пришел с сервера после создания.
Механизм такой: сделали что-то, есть подключение к инету?
ДА - отправляем на сервер - получили успешный ответ?
да - добавили в локальную базу с id который пришел с сервера.
нет - пишем в чем ошибка в лог, извиняемся перед пользователем (хотя схема другая,обычно все ок, и не ок только если сервер упал)
НЕТ - пишем в локальную базу, с пустым сервер ID
появляется подключение к сети
- отправляем порциями локальные объекты (если они до появления инета не были удалены) для получения нужных сервер ID
- запрашиваем список удаленных с сервера (авось под этой учеткой на другом устройстве чтото удалили) удаляем локальные объекты
UPD: может кто не догадается сразу, мало ли. Как только сервер получает данные, он сообщает по сокету всем пользователям которые онлайн и находятся в какой то связи с контентом пользователя что его делал