Create async mailing capability (17)
When a lot of e-mails are being sent, this can take a very long time, which 'blocks' the application until sending the e-mails is done. The solution will be to handle the e-mails asynchronously in a queue. The e-mail queue will be a fourth top-level concern.
Having a top-level concern for e-mails might make implementing #7 (closed) more easy as it can all be done in one place.
-
Create async mail service (5) -
Create STOMP channel for receiving (subscribing to) async mail service status (3) -
Make front-end progress interface for sending e-mails (2) -
Make front-end modal showing extended progress information (3) -
Change existing endpoints that send e-mails to non-blocking endpoints emitting to async mail service (removing existing exception handlers) (4)
Additional tasks added later:
-
Think of a better way to present mail functionality to the user when there is no active configuration. -
Fix ESLint errors caused by the new implementation. -
Remove any legacy code/configuration of the old mail system, e.g., remove spring.mail
fromapplication.yml
. -
Fix checkstyle errors caused by the new implementation.
Edited by Remco de Man