title: How to design my application to be in sync with external system that I am integrating with using API calls
body: <p>I am working on an asp.net mvc web application that integrate with an external system using http API calls, to perform CRUD operations . my current design for this is as follow:-</p>
  
  <ol>
  <li><p>When adding new object:-</p>
  
  <ul>
  <li>Send CREATE API Call to external system (object1)</li>
  <li>If API call is == Success --> CREATE object1 on internal system;</li>
  <li>If internal system CREATE operation fail --> send DELETE API Call to external sytem.</li>
  </ul></li>
  <li><p>When Deleting exsisting object:-</p>
  
  <ul>
  <li>Send DELETE API Call to external system (object1)</li>
  <li>If API call is == Success  --> DELETE object1 on internal system;</li>
  <li>If internal system DELETE operation fail --> send CREATE API Call to external.</li>
  </ul></li>
  </ol>
  
  <p>So in my current design , if any (create or delete ) is committed inside my system then I will be 100% sure that it was confirmed in the external system. But i can not be 100% sure of other scenarios occurred.</p>
  
  <p>So will the above approach works well , and I know it might not cover all the scenarios , especially if the network connection break during the above scenario. But at least it can provide a reliable approach most of the time.</p>
  
  <p>Can anyone advice on how I can improve my approach ? </p>