It is very confusing and i don't completely understand it all myself, but for the most part what happens, as far as I understand it, is that the master batch coordinator sends out begin batch messages to all of the spout coordinators and all the state instances saying batch X is about to begin. When it gets an ack back (saying everyone saw it and are ready for it) it will then send out a message saying emit batch X, (all tuples within that batch are tied to this emit as the are processed). If that comes back as success then it will send out a final message to commit batch X. (but only if batch X-1 has already been committed). If any of these fail it will ask the spouts to replay the batch. - Bobby
On Wednesday, November 2, 2016, 5:38:29 PM CDT, Li Wang <[email protected]> wrote:Hi guys, I am trying to understand the implementation of Trident. Through reading the code in TridentTopolgyBuilder.java, I understand that some Coordinator components, such as MasterBatchCoordinator and TridentSpoutCoordinator, are added to a user defined topology in TridentTopologyBuilder.createTopology(). I try to understand the control flow of those coordinators, but is seems to be very difficult to get the sense just from source code. Is there any document giving a high level of the control flow of the coordinator components in a Trident Topology? Any help is highly appreciated. Thanks! Sincerely, Li Wang
