Одним из вариантов является использование распределенных транзакций, что является довольно сложным подходом ...
Кроме того, что вы можете изменить архитектуру, что тоже не идеальный совет.
Переходя к реальным советам.
Общий вопрос здесь, если это единственный, проблемный случай. Если это так - это довольно просто - расширяйте свой API таким образом, чтобы можно было удалять несколько объектов за одну операцию. Пожалуйста, посмотрите на Oracle / Scim API . Таким образом, изменение одной группы является атомарным. Проблема начинается, когда кто-то собирается переместить пользователя из одной группы в другую. Так что, может быть, вы можете справиться с проблемными случаями, добавив специальный метод - как представлено patch
?
Другое, чем все это. Вы можете использовать command
шаблон проектирования и иметь возврат для каждой операции. Это все еще сложно, поскольку не все варианты возможны, но это сильно зависит от вашего случая.