- Flow of Input -> Output is managed via Adapters and Hubot's "core" robot functionality. Adapters are initialized with a Hubot instance. They forward messages directly to the robot instance. They are also responsible for building a reply back to the source.
- Architecturally the Hubot (robot core) is aware of the adapter, and the adapter is aware of hubot.
Here's what a quick implementation looks like with SlackBot: https://github.com/slackhq/hubot-slack/blob/master/src/bot.coffee
create Hubot instance -> create adapter instance -> run
To view the sequence diagram, use jay's chrome extension