So to get an idea about the complexity of Syncthing I read through the protocol specification(s) and it contains somewhat the commands as expected, but actually it is smaller than I expected, only a few commands power this.
After searching a bit more, there does not seem to be an alternative implementation of the protocol. Why is that? A specification benefits if there are multiple independent implementations done, but there is only one and everyone seems to be happy with it. Thinking further, if the protocol is not that complex, but a lot of work has been poured over the years into the current reference implementation, where did these hours end up? In the nasty corner cases of syncing across multiple platforms and varying OS behaviours? In the UI? In performance tuning? In actually trying various ideas and then rewriting stuff for production? In all of above and the syncing of files and their contents is really just the smallest part in such a projects?
I’m just curious - if there is an article about this somewhere already please point me to it! Thanks