Accepting file uploads in web applications is very delicate, because all actions for dealing with attachments are slow: uploading files to your app uploading files to an external storage file processing deleting files A vanilla file upload implementation where all of this is synchronous has two main downsides: (a) the UI is blocked during these actions, (b) your application’s throughput is reduced