title: What is the faster and most reliable way of communication between Windows-based C# and Linux-based Java applications?
body: <p>I have server A which runs under Windows (C#), I have server B which runs under Linux (Java). I need to setup a fast and reliable way of interaction between these two servers. 
  Requirements:</p>
  
  <ul>
  <li>The size of data is small (many small messages of kbyte or something)</li>
  <li>The rate is 1 message per second at least; good to have 1 per ms</li>
  <li>The order should be preserved</li>
  <li>Persistency not required</li>
  <li>Delivery confirmation - yes</li>
  </ul>
  
  <p>Some options out of my head:</p>
  
  <ul>
  <li>Kafka / other messaging systems. The downsize is that I have to use a
  middleware in a form of server.</li>
  <li>Use Cloud queues from AWS or other cloud service. Can be costly?</li>
  <li>Own messaging via TCP messages (very time consuming, I guess there
  are open-source alternatives). No middleware.</li>
  <li>Somehow via shared filesystem?</li>
  <li>Setup Linux Server on Windows and.. what? Any special options if
  applications are sharing same host?</li>
  </ul>