Tonight I decided to pull the plug on the ServerSync project that I've been working on. If you've been following my blog, or following me on Twitter, you know that this is a project that I have been very excited about. So you can imagine just how difficult this decision was.
So why did I pull the plug?
I learned the hard way that the new Perform Script on Server is not a server-compatible script step. As a result, server-to-server sync can only be done using Perform Script. My early testing of ServerSync seemed to indicate that losing all of the performance benefits that PSoS provides wasn't terrible. However, during testing today I began to see just how much of a hit the sync process takes, especially when large sets of data are involved. (I'm still not sure why PSoS isn't supported server-side, but until it is, server-to-server syncing is going to suffer.)
Another technical issue that I ran into involved caching. It is difficult to explain exactly what I was seeing, but it appeared as though there was some sort of bizarre caching going on server-side. I had a heck of time trying to figure out what was going on, and in the end I could not consistently reproduce the behavior. Regardless, as a result of whatever was going on, there was often a delay (and in some cases a big delay) in getting everything synced up. (Combine that issue with differences in UTC times between servers, and things got even more challenging.)
But what ultimately lead me to pull the plug was that I realized that, due to the limitations described above, ServerSync was quickly becoming just a lightweight, one-way (pull-only) version of EasySync. And with all of the effort that has been put into EasySync, it just doesn't make sense to put additional time and energy into ServerSync. It might make sense someday (when PSoS is server-compatible, and we can get the UTC timestamp issues resolved). But for now, I'm shelving the project.