We are currently working on CQ 5.4 and have configured two publish instances with one author. We are also using IIS 7.5 as a dispatcher and load balancer (as there are 2 publish instances). We are using the OOTB comments component. Whenever we are posting a comment in publish, sometimes, the comment is not appearing immediately, we have to refresh the page and then the comment appears(after some delay). This creates the impression that the comment is not posted and hence causes confusion. Is it because we are using 2 publish instances that is causing this delay? Please let us know how can the comments appear immediately without any delay and without explicitly refreshing the page?
The issue most likely is that you are using two publish servers. Assuming you have the workflows set up for no moderation and immediate availability of the comment then most likely what you are seeing is the impact of reverse replication. When a comment is posted it is stored on one of the publish servers, and then is replicated back to the author server using reverse replication. On the author server a workflow kicks off and the comment is then activated to the publish servers, and dispatcher cache is flushed. Its been a while since I used 5.4 so I am not sure if the comment AJAX is dispatcher cached or not. If the comment AJAX isn't being dispatcher cached then you could set up sticky sessions on your load balancer that is in front of your publish servers and you would probably end up seeing the post immediately. Sticky sessions might not work however if the comment code is checking status - it might actually be waiting for the comment to be replicated back out by the author server - I am not 100% sure. But it should be easy to try the sticky sessions option.