Dispatcher is needed for handling incoming updates from Telegram. With dispatcher you can do:
- Handle incoming updates;
- Filter incoming events before it will be processed by specific handler;
- Modify event and related data in middlewares;
- Separate bot functionality between different handlers, modules and packages
Manually dispatcher has the router role and can include another routers.
Dispatcher is also separated into two entities - Router and Dispatcher. Dispatcher is subclass of router and should be always is root router.