My explanation from the Redis discussion:
luceos The default queue driver is sync, which means all jobs that could be processed in the background are processed inside the same request where changes happen. For example if you post in a discussion to which 100 users want to get notifications, all these notifications are sent out while posting. This stalls the user as they have to wait for that request to finish to see changes. To circumvent this one can set up a queue driver like the redis one. If a user now posts all notifications are sent in a so called queue worker which uses the redis database to pull in new jobs and process them. Even with one queue worker the gains to the user are immense.
And now based on a Horizon point of view:
Flarum by default does not use a Queue. Email notifications and other things that the current user does not necessarily need to wait on, are being processed whenever they need to be send.
For instance a user writes a reply on a discussion, 25 people are "Following" that discussion with Email notifications enabled. The user has to wait for all 25 email notifications to be send before the page is updated and his post is visible. The larger your community, the higher the risk that these requests take so long that the request of the user times out and he sees an error.
This is where Queues are handy. Queues process email notifications (and other things) in the background, outside of the request a user made. During the request of creating the post the Queue will be informed to start sending emails.
One available Queue implementation is the one I wrote with Redis, see Redis sessions, cache & queues. That is a very simple queue driver, but it doesn't give you much insight into what is happening.
That is the reason why the awesome Laravel people built Horizon. Horizon is yet another upgrade to the Redis Queue driver by offering a complete dashboard, improving scalability (including over multiple servers) and introduce balancing.
You most likely don't need this extension until you need this extension. When you've grown to such a scale that knowing what happens with notifications, emails and other background tasks should no longer be a question of chance.