...
- A user applies a cost allocation to the project. If the cost allocation does not exist, a new bucket is created. If the bucket is successfully created or if the cost allocation existsalready exists, the call succeeds for the user. A successful call triggers the next step.
- A worker (separate from the stack) collects the file handles in that project that are stored in Synapse storage and are not in the cost allocation. These file handles are sent to another worker to accomplish the next step. This worker can run when a cost allocation is created, as well as at regular intervals to ensure files are not missed.
- A worker on the stack is given a file handle and a destination bucket. If the file is not already in that bucket, it is copied to the destination bucket. If the copy is successful, the file handle is modified to point to the new location. The old file is archived and marked for later deletion.
...