Can you turn on logging to verify that the event are received (firewall/port is open)?
Remote event listener is a useful tool for testing if events are received by the server!
Are you running udp or tcp?
I have been in a couple of situations where udp were not possible to use.
Make sure in application pool settings maximum worker processe is set to 1 also try pinging the replication url port and url if they are working as expected from both servers in NLB.
" In order to improve performance, ISynchronizedObjectInstanceCache is used in multiple places."
Not sure how did you implement it, but note that the default implemenation of ISynchronizedObjectInstanceCache only ensure the synchronization of cache removal. So if you have a cache in both server A and B, then you update the cache in server A, the cache in server B will be removed but there is no guarantee that it will have the new cache in server B.
I aSubmitm just in process of preparing the production enviroment. There are 2 web servers behind the load balancer. In order to improve performance, ISynchronizedObjectInstanceCache is used in multiple places. Cache eviction policy is set to DataFactoryCache.VersionKey. However, if I change the content on one node, changes are not being persised to the scond server. As per documentation (http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/9/Deployment/Deployment-scenarios/Deploying-to-Windows-Servers/) I enabled Remote Events by pasting in endpoint configuarion.
I am sure there is something I must have missed :(
[Pasting files is not allowed]