Another quick reply, in case it wasn't clear from my last, that it sounds like your understanding of the purpose of sync_client and sync_server are neatly reversed:
> Do we have multiple sync_clients because a new one is spawned by a > master for each change (and then the process finishes), or is there an > actual pool of sync clients which handle each change and persist idle. ... > I also have in my wonderful drawing a picture of a number of channels. I > assume these are (part of) a config given to the sync_server so it knows > where to broadcast all the changes defined in the log files to? sync_server doesn't send/broadcast changes: it runs on a replica, listening for, receiving and applying changes sync_client doesn't receive changes: it watches for them (by monitoring a channel's sync log) and sends them to a sync_server on a replica (I wonder if that accidentally makes understanding channels easier too?) On Thu, Jul 23, 2015, at 03:18 PM, Nicola Nye wrote: > Hi Cyrus, > > I'm currently working on some basic architecture diagrams that will > complement the documentation to show the moving parts. Today's topic: > replication. > > Based on a delightfully drawn whiteboard session with Bron, I am left > with a couple of queries: > > Do we have multiple sync_clients because a new one is spawned by a > master for each change (and then the process finishes), or is there an > actual pool of sync clients which handle each change and persist idle. > > Is the file format of the sync log defined anywhere? I assume it > correlates with a set of commands. (Not that this is important to a > user: it may as well be opaque, but it made me wonder!) > > I failed to note where the sync_server fits in. Is it a separate process > that lives alongside the master imap server and sits there constantly > checking the log files generated by sync_client to be handled? > > I also have in my wonderful drawing a picture of a number of channels. I > assume these are (part of) a config given to the sync_server so it knows > where to broadcast all the changes defined in the log files to? Or have > I misunderstood what a channel is? > > Nicola