Tank Thinking about Syncing
Thoughts. And Code. And Pictures. Maybe.
Syncing data is more than a technical problem. Reliable synchronization is at the heart of many elegant forms of decentralized information management. As users, this allows us to keep our data close to us, on local devices, away from central database servers. It lays the foundation for better access to and control over the information we produce, collect, and share. The freedom this brings goes far beyond offline-capable applications that liberate us from unstable network connections. Local data is a step towards greater data autonomy.
Syncing data is also a technical problem. And not a small one. The articles you will find on Sync Tank reflect our learnings from building syncronizing systems in the wild. We have a history of working with Apache CouchDB that will play a role in many of our discussions. Having said that, many of the conceptual points we make will generalize to other technologies as well.
- Distributed Migration Strategies. Schema migrations are a common task in any kind of application development. But migrating data in distributed systems poses a number of formidable challenges. You can find a detailed problem exposition, a collection of good practices when working with document databases, and an invitation to join the discussion, in our opening article.
About Sync Tank
Before you follow us deeper into our discussions and open your minds and hearts to what we have to say, you might want to know who we are and where we stand. We are: Johannes J. Schmidt and Matthias Dumke, data architects, web developers, friends. We share a passion for data and spend our days as coworkers at a company called immmr. Here, we ensure the seamless integration of data synchronization into a complex communication ecosystem. We have been professional developers for years. Johannes in particular has over a decade’s worth of experience working with document databases. He has authored and worked on several widely used tools in the CouchDB ecosystem. And he is the main author of the CouchDB Best Practices guidelines he compiled during his work at eHealth Africa.
Software is for people. Therefore, we believe that good software development embraces the fundamental diversity of lifes and perspectives. Access and participation ought to be central concerns of any programmer. On that note, we hope that our thoughts and ideas will contribute to the development of better software.
Johannes and Matthias
The Sync Tank website is hosted on GitHub. We’re @tfschmiz and @MatthiasDumke on Twitter.