идемпотентность - это не обнаружение и остановка обработки сообщения дважды.Это больше связано с тем, что сообщение, обработанное 2 или более раз, имеет одинаковые побочные эффекты.Поэтому вместо операций добавления / создания / обновления у меня будет просто операция Store, которая выполняет как вставку, так и обновление.
Так что в вашем примере CreateOrder просто заставьте клиента передавать guid, который ваша служба вставит, если он это сделает.не существует или не обновляется, если это так.