I might be getting myself confused here but say I want a service to be idempotent. That is, receiving the same request more than once will not change the state of the system. This makes sense to me when receiving messages in a disconnected integration system. For example, receiving messages over MSMQ and having some form of service dealing with the messages being received. You want the service to be in a consistent state even if it receives 10 duplicate messages.
What I am now struggling to get my head around is what about with a standard WCF SOAP service that performs CRUD operations. Does the idempotency question only come into affect if it is an asynchronous call? Is a syncrhonous call by nature idempotent? Looking at CRUD operations, the only one which is not idempotent is create. Can you have duplicate create calls to WCF?
Thanks