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.
---

Reply via email to