I spent years building sync solutions in Microsoft! I loved it! Sync and replication logic is so challenging and that is very appealing to me. In learning about sync algorithms, I’ve gone into several phases. First, I learned about how to debug customer reported issues and create fixes that shipped with windows services packs. After that, I went into building services and features around a sync engine trying to improve monitoring and debug-ability of a multi-master system. Finally, I directed my attention to the sync engine itself trying to ensure that it does not impose unnecessary assumptions on the developers of the layers above.
In my journey I found that the best way to better grasp sync logic is by getting the issues that bothers you out in the open. By that I mean: asking questions; talking to people; reviewing designs that others have written; building prototypes; collecting feedback and act on it; and learning from past mistakes. Simply put, sync is not easy that one person can fully comprehend. But two will get closer, three will round out most mistakes and four will do…Make no mistake about this, in developing Microsoft Sync Framework we have a selected group of very smart people getting together day in and day out discussing designs, features and issues for weeks. Different prospective add value and improve the product. You can do that too!
In the recent weeks I started collecting links to articles and projects that were authored by internal Microsoft staff or by external developers who just felt like sharing what they have learned. The resources page on my web site is growing fairly quickly. Just yesterday, I added two links for one sample code using sync services against Oracle backed shared by Microsoft Solution Architect Memi Lavi, and the other for a sample file provider that syncs file over the internet shared by Bryant Likes.
This is what I am talking about. Sharing will make us all learn. If you are experimenting with the sync framework and happen to build a neat sample or demo, then don’t just put it aside to catch the dust. Share it. Put it on your blog or on one of those code sharing sites like CodePlex or CodeProject, or even on a web share like SkyDrive and post a link to it along with a readme file to the forums. And please send me a link so that I can add it to the resources page.
So here you go. A New Year resolution for 2008: Share your sync experiments!
Happy New Year!
Update: Just to let you know, I left Microsoft to start a new company, Raveable Hotel Reviews. See examples: Romantic Hotels in Myrtle Beach, Best Hotels in Seattle,Top 10 Hotels in Miami, Kid friendly hotels in San Diego, Hotels with a kitchen or kitchenette and 5 Star Hotels in Las Vegas. Your feedback is welcome ontwitter.com/raveable, raveable blog.