@startuml package stage1 as "Adapter" { [FacebookMessenger] [Telegram] } package stage2 as "Message Interpreter" { [Text <--> Speech] [Image recognition] [Translation] [Translation] } package stage3 as "MainBot" { [UserManagement] [Answer Generator] - Tagger [Answer Generator] -- [WebServices] } queue queue as "JMS Message Queue" queue -up- stage1 queue -left- stage2 queue -down- stage3 @enduml