I am just getting started with Blockstack. I am trying to understand how I would setup backend processing. e.g. if I want to allow a user to publish a file to storage from the app for all other users to consume but first want to perform a long-running background job on the file to process it, where would that service live? and how would it grab and process the file before all other users can consume it?
Generally speaking, the notion of back-end processing is anathema to the kinds of apps Blockstack was designed to build. The mission of Blockstack is to build applications cannot be evil – that is, applications that cannot mismanage the user’s data or betray their trust. To this end, all application business logic must run either on one of the user’s devices, or (in the near future) on a globally-visible 100% auditable replicated state machine, realized through the Stacks blockchain.
That said,maybe there’s a way you can structure your application so that a back-end processing step is not necessary? Or maybe there’s a way for the user to be able to choose which computer carries out the back-end processing step, so they can run it themselves?