When you send a campaign, a job called SendCampaign job will be dispatched. This job will create a MailSend model for each of the subscribers of the list you're sending the campaign to. A MailSend represents a mail that should be sent to one subscriber.
For each created SendMail model, a SendMailJob will be started. That job will send that actual mail. After the job has sent the mail, it will mark the SendMail as sent, by filling sent_at with the current timestamp.
You can customize on which queue the SendCampaignJob and SendMailJob jobs are dispatched in the perform_on_queue in the email-campaigns config file. We recommend the SendMailJob having its own queue because it could contain many pending jobs if you are sending a campaign to a large list of subscribers.
The SendMailJob is throttled by default so that it doesn't overwhelm your email service with a large number of calls. Only 5 of those jobs will be handled per second. To learn more about this, read the docs on throttling sends.