Github user sachingoel0101 commented on the pull request: https://github.com/apache/flink/pull/975#issuecomment-127331693 The basic methodology is this: 1. `TaskManager` keeps asking `JobManager` for running `TaskManagers` at some interval, same as the `heartbeat` interval. 2. `TaskManager` sets up a `MessageHandler` when it first associated itself with a `JobManager` and provides it with a gateway to itself. 3. `MessageHandler` sets up separate `TaskMessageHandlers` for all tasks registered on the `TaskManager` and passes the pointers to the `RuntimeEnvironment -> PackTask -> RuntimeContext`, whereby user can `broadcast` the messages derived from the interface `TaskMessage`. 4. User can fetch all messages by calling `receive` from `RuntimeContext` and is provided a list of all messages available for this task. __Messages will be delivered only once. __ 5. There is a separate limited size `queue` associated with each `Task`, which serves messages to all parallel instances of a `Task` exactly once, without duplicating them.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---