A message broker helps exchange messages across systems and applications. A message broker is usually used to handle background jobs, long-running tasks, or act as a translator between applications (including microservices). An example of a long-running task would be to create a large PDF file programmatically by reading and formatting a lot of data from your data source. The reading and transformation of that data and writing that into a file could take quite some time. A message broker in this case could help with a "fire and forget" scenario, where the requester does not have to wait for the creation of the file and that job can happen in the background.