Yeah, if the logic can wait it's better to just use the aftersubmit to set a checkbox to true so it can be processed later in a batch job. Even better if you can avoid the afterSubmit and just run a search instead for records to process by last modified date or some other criteria.
It's best practice to try to process the data in scheduled batches as much as possible to give priority to critical real time operations.